Communication decoder employing single trellis to support multiple code rates and/or multiple modulations

ABSTRACT

Communication decoder employing single trellis to support multiple code rates and/or multiple modulations. A single trellis is employed by the decoder to decode a plurality of encoded symbols. Each of the plurality of encoded symbols is governed by a rate control. A rate control sequence, having a period, is used to decode the plurality of encoded symbols that may be arranged within a frame. Various parameters of the plurality of encoded symbols may vary on a symbol by symbol basis; these parameters may include modulation, constellation, mapping, and/or bandwidth efficiency. For example, various symbols may be encoded differently, yet they may all be decoded using the same trellis. The functionality of this decoder may be implemented within a variety of different decoder embodiments including a trellis code modulation (TCM) decoder, a turbo trellis code modulation (TTCM) decoder, and/or a parallel concatenated turbo code modulation (PC-TCM) decoder.

CROSS REFERENCE TO RELATED PATENTS/PATENT APPLICATIONS ContinuationPriority Claim, 35 U.S.C. §120

The present U.S. Utility patent application claims priority pursuant to35 U.S.C. §120, as a continuation, to the following U.S. Utility patentapplication which is hereby incorporated herein by reference in itsentirety and made part of the present U.S. Utility patent applicationfor all purposes:

1. U.S. Utility application Ser. No. 10/338,377, entitled “Communicationdecoder employing single trellis to support multiple code rates and/ormultiple modulations,” (Attorney Docket No. BP2333.2), filed Jan. 8,2003, pending, which claims priority pursuant to 35 U.S.C. §119(e) tothe following U.S. Provisional Patent Application which is herebyincorporated herein by reference in its entirety and made part of thepresent U.S. Utility patent application for all purposes:

1. U.S. Provisional Patent Application Ser. No. 60/384,698, entitled“Variable code rate and signal constellation turbo trellis codedmodulation codec,” (Attorney Docket No. BP2333), filed May 31, 2002.

Incorporation by Reference

The following U.S. Utility patent applications are hereby incorporatedherein by reference in their entirety and made part of the present U.S.Utility patent application for all purposes:

1. U.S. Utility application Ser. No. 10/264,486, entitled “Variable coderate and signal constellation turbo trellis coded modulation codec,”(Attorney Docket No. BP2333), filed Oct. 4, 2002, pending.

2. U.S. Utility patent application Ser. No. 10/338,571, entitled“Parallel concatenated turbo code modulation encoder,” (Attorney DocketNo. BP2333.1), filed Jan. 8, 2003, pending.

3. U.S. Utility patent application Ser. No. 10/338,185, entitled “Symbolby symbol variable code rate capable communication device,” (AttorneyDocket No. BP2333.3), filed Jan. 8, 2003, pending.

4. U.S. Utility patent application Ser. No. 10/338,376, entitled “Symbolby symbol variable constellation type and/or mapping capablecommunication device,” (Attorney Docket No. BP2333.4), filed Jan. 8,2003, pending.

5. U.S. Utility patent application Ser. No. 10/338,432, entitled“Determination of variable code rates for a rate control sequence,”(Attorney Docket No. BP2333.5), filed Jan. 8, 2003, pending.

BACKGROUND OF THE INVENTION

1. Technical Field of the Invention

The invention relates generally to communication systems; and, moreparticularly, it relates to devices that decode information within suchcommunication systems.

2. Description of Related Art

Turbo code and variants thereof have been the focus of a great deal ofinterest in the recent years. A primary directive in this area ofdevelopment has been to try continually to lower the error floor withina communication system. The ideal goal has been to try reach Shannon'slimit in a communication channel. Shannon's limit may be viewed as beingthe data rate that is used in a communication channel, having aparticular signal to noise ratio (SNR), that will achieve error freetransmission through the channel. In other words, the Shannon limit isthe theoretical bound for channel capacity for a given modulation andcode rate. The code rate is the ratio of information bits over the totalnumber of bits transmitted within the communication system. In the turbocode context, it is common to refer to code rate of n/m, where n is thenumber of information bits and m is the total number of bits, and wherem>n. The difference between m and n typically being referred to as thenumber of redundant bits. Turbo codes typically introduce a degree ofredundancy to at least a portion of data prior to transmission through acommunication channel. This is generally referred to as forward errorcorrection (FEC) coding.

Although there has been much development within the context of turbocode and related coding applications with increased interest recently,this focus has been primarily towards achieving very low bit error rates(BERs) across relatively noisy communication channels. As such, theseprior art turbo codes largely operate at relatively low rates across thenoisy communication channels. The area of turbo code and variantsthereof is still an area of relative immaturity in the technologicaldevelopment sense. While there has no doubt been a great amount ofprogress achieved this far, there still remains a great deal ofdevelopment and improvement that can be done. This is a technology areawhere industry-wide consensus has certainly not yet been achieved, andthere are many competing viewpoint within the industry as to whichdirection effort should be directed.

The use of turbo codes providing such low error, while operating atrelatively low rates, has largely been in the context of communicationsystems having a large degree of noise within the communication channeland where substantially error free communication is held at the highestpremium. Some of the earliest application arenas for turbo coding werespace related where accurate (ideally error free) communication is oftendeemed an essential design criterion. The direction of development thenmoved towards developing terrestrial-applicable and consumer-relatedapplications. Still, the focus of effort here has continued to beachieving low error floors, and not specifically towards reaching higherthroughput.

As such, there exists a need in the art to develop turbo code relatedcoding that is operable to support higher amounts of throughput whilestill preserving the relatively low error floors offered within theturbo code context. Whereas the development of turbo code relatedtechnology has primarily been directed towards relatively low ratesacross noisy communication channels, there exists a need to overcome themany hurdles that prevent the application of turbo code to higher datarate applications. In doing so, these higher data rate applications maybenefit from the low BERs offered by turbo codes.

BRIEF SUMMARY OF THE INVENTION

The present invention is directed to apparatus and methods of operationthat are further described in the following Brief Description of theSeveral Views of the Drawings, the Detailed Description of theInvention, and the claims. Other features and advantages of the presentinvention will become apparent from the following detailed descriptionof the invention made with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a system diagram illustrating an embodiment of a satellitecommunication system that is built according to the invention.

FIG. 2 is a system diagram illustrating an embodiment of a HDTVcommunication system that is built according to the invention.

FIG. 3 is a system diagram illustrating an embodiment of a cellularcommunication system that is built according to the invention.

FIG. 4 is a system diagram illustrating another embodiment of a cellularcommunication system that is built according to the invention.

FIG. 5 is a system diagram illustrating an embodiment of a microwavecommunication system that is built according to the invention.

FIG. 6 is a system diagram illustrating an embodiment of apoint-to-point communication system that is built according to theinvention.

FIG. 7 is a system diagram illustrating an embodiment of auni-directional TTCM communication system that is built according to theinvention.

FIG. 8 is a system diagram illustrating an embodiment of abi-directional TTCM communication system that is built according to theinvention.

FIG. 9 is a system diagram illustrating an embodiment of a one to manyTTCM communication system that is built according to the invention.

FIG. 10 is a system diagram illustrating an embodiment of a satellitereceiver set-top box system that is built according to the invention.

FIG. 11 is a system diagram illustrating an embodiment of a TTCMcommunication system that is built according to the invention.

FIG. 12 is a diagram illustrating a single interleaver embodiment of theturbo encoder of the FIG. 11.

FIG. 13 is a diagram illustrating a dual interleaver embodiment of theturbo encoder of the FIG. 11.

FIG. 14 is a diagram illustrating an embodiment of a systematic encoderthat is built according to the invention.

FIG. 15 is a diagram illustrating an embodiment of a non-systematicencoder that is built according to the invention.

FIG. 16 is a diagram illustrating an embodiment of a non-systematicencoder using puncturing and rate control sequencer to support multipleencoders according to the invention.

FIG. 17 is a diagram illustrating an embodiment of periodic sequencingof a non-systematic encoder using puncturing and rate control sequenceraccording to the invention.

FIG. 18 is a diagram illustrating a generic embodiment of variablepuncturing, constellation, and mapping using a single encoder accordingto the invention.

FIG. 19 is a diagram illustrating an embodiment of a rate 1/2 recursiveconvolutional encoder with non-systematic output that is built accordingto the invention.

FIG. 20 is a diagram illustrating an embodiment of a rate 2/5 prototypeencoder that is built according to the invention.

FIG. 21 is a block diagram of a rate 2/5 systematic prototype encoderthat is built according to the invention.

FIG. 22 is a block diagram of the rate 2/5 non-systematic prototypeencoder of the FIG. 20.

FIG. 23 is a trellis diagram of a trellis employed by the rate 2/5non-systematic prototype encoder of the FIG. 20.

FIG. 24 is a diagram illustrating the functional operation thenon-systematic rate 2/5 encoder of the FIG. 20 using puncturing and ratecontrol sequencer to support multiple encoders performing various ratecontrols according to the invention.

FIG. 25 shows additional rate controls supported by the non-systematicrate 2/5 encoder of the FIG. 20.

FIG. 26 shows yet additional rate controls supported by thenon-systematic rate 2/5 encoder of the FIG. 20.

FIGS. 27, 28, 29, and 30 are diagrams illustrating embodiments ofperiodic sequencing of the non-systematic rate 2/5 encoder of the FIG.20 using puncturing and rate control sequencer according to theinvention.

FIG. 31 is a constellation diagram illustrating an embodiment of ratecontrol governed mapping to 8 PSK constellations according to theinvention.

FIGS. 32, 33, and 34 are constellation diagrams illustrating embodimentsof rate control governed mapping to QPSK constellations according to theinvention.

FIG. 35 is a constellation diagram illustrating an embodiment of ratecontrol governed mapping to a 16 QAM constellation according to theinvention.

FIG. 36 is a constellation diagram illustrating an embodiment of ratecontrol governed mapping to 16 APSK constellations according to theinvention.

FIG. 37 is a diagram illustrating an embodiment of variable puncturing,modulation, and mapping using the single non-systematic rate 2/5 encoderof the FIG. 20 according to the invention.

FIG. 38 is a system diagram illustrating an embodiment of a TTCM decodersystem that is built according to the invention.

FIG. 39 is a system diagram illustrating an embodiment of an alternativeTTCM decoder system that recycles a single SISO according to theinvention.

FIG. 40 is a diagram illustrating an embodiment of I,Q extraction thatis performed according to the invention.

FIG. 41 is a diagram illustrating an embodiment of received I,Q mappingperformed based on rate control according to the invention.

FIG. 42 is a diagram illustrating an embodiment of metric calculationperformed by one of the metric generators shown in the FIG. 38 and theFIG. 39.

FIG. 43 is a functional block diagram illustrating an embodiment ofmetric mapping functionality that is performed according to theinvention.

FIG. 44 is a diagram illustrating an embodiment of SISO calculations andoperations that are performed according to the invention.

FIG. 45 is a diagram illustrating an embodiment of alpha, beta, andextrinsic calculation, based on the trellis of the FIG. 23 of the rate2/5 non-systematic prototype encoder of the FIG. 20 according to theinvention.

FIG. 46 is a diagram illustrating an embodiment of final output ofdecoding that is performed according to the invention.

FIG. 47 is a diagram illustrating an embodiment of a variable code ratecodec (encoder/decoder) servicing channels of various SNRs according tothe invention.

FIG. 48 is an operational flow diagram illustrating an embodiment of aTTCM variable code rate coding method that is performed according to theinvention.

FIG. 49 is an operational flow diagram illustrating an embodiment of aTTCM variable code rate encoding method that is performed according tothe invention.

FIG. 50 is an operational flow diagram illustrating an embodiment of aTTCM variable code rate decoding method that is performed according tothe invention.

FIG. 51 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate encoding method that is performed accordingto the invention.

FIG. 52 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate decoding method that is performed accordingto the invention.

FIG. 53 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate coding method that is performed accordingto the invention.

FIG. 54 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate coding method that is performed accordingto the invention.

FIG. 55 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate coding method that is performed accordingto the invention.

FIG. 56 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate encoding method that is performed accordingto the invention.

DETAILED DESCRIPTION OF THE INVENTION

The variable code rate functionality of the invention may properly bedescribed as being within the context of turbo trellis code modulation(TTCM) communication systems. TTCM coding may also be viewed as a hybridcombination of turbo coding and trellis code modulation (TCM). Some ofthe particular embodiments of the invention are performed withincommunication systems that may more properly be categorized as beingparallel concatenated turbo code modulation (PC-TCM) communicationsystems.

FIGS. 1-9 illustrate a number of communication systems contextembodiments where certain aspects of the invention may be implemented.

FIG. 1 is a system diagram illustrating an embodiment of a satellitecommunication system 100 that is built according to the invention. Asatellite transmitter 110 includes a TTCM encoder 112. The TTCM encoder112 is one of several possible embodiments that are described herein.The TTCM encoder 112 is operable to encode data that is to betransmitted by the satellite transmitter 110. The satellite transmitter110 is communicatively coupled to a satellite dish 115 that is operableto communicate with a satellite 150. The satellite transmitter 110 mayalso be communicatively coupled to a wired network. This wired networkmay include any number of networks including the Internet, proprietarynetworks, and other wired networks. The satellite transmitter 110employs the satellite dish 115 to communicate to the satellite 150 via awireless communication channel. The satellite 150 is able to communicatewith one or more satellite receivers, shown as a satellite receiver 120(having a satellite dish 125), . . . , and a satellite receiver 130(having a satellite dish 135). Each of the satellite receiver 120 andthe satellite receiver 130 includes a TTCM decoder; specifically, thesatellite receiver 120 includes a TTCM decoder 122, and the satellitereceiver 130 includes a TTCM decoder 132. Each of the satellite receiver120 and the satellite receiver 130 may also be communicatively coupledto a display. Again, specifically, the satellite receiver 120 may becommunicatively coupled to a display 127, and the satellite receiver 130may be communicatively coupled to a display 137. Various and furtherdetails will be provided below regarding the various embodiments inwhich the TTCM encoder 112, and the TTCM decoders 122 and 132 may beimplemented.

Here, the communication to and from the satellite 150 may cooperativelybe viewed as being a wireless communication channel, or each of thecommunication to and from the satellite 150 may be viewed as being twodistinct wireless communication channels.

For example, the wireless communication “channel” may be viewed as notincluding multiple wireless hops in one embodiment. In otherembodiments, the satellite 150 receives a signal received from thesatellite transmitter 110 (via its satellite dish 115), amplifies it,and relays it to satellite receiver 120 (via its satellite dish 125);the satellite receiver 120 may also be implemented using terrestrialreceivers such as satellite receivers, satellite based telephones, andsatellite based Internet receivers, among other receiver types. In thecase where the satellite 150 receives a signal received from thesatellite transmitter 110 (via its satellite dish 115), amplifies it,and relays it, the satellite 150 may be viewed as being a “transponder.”In addition, other satellites may exist that perform both receiver andtransmitter operations in cooperation with the satellite 150. In thiscase, each leg of an up-down transmission via the wireless communicationchannel would be considered separately.

In whichever embodiment, the satellite 150 communicates with thesatellite receiver 120. The satellite receiver 120 may be viewed asbeing a mobile unit in certain embodiments (employing a local antenna);alternatively, the satellite receiver 120 may be viewed as being asatellite earth station that may be communicatively coupled to a wirednetwork in a similar manner in which the satellite transmitter 110 mayalso be communicatively coupled to a wired network. In both situations,the satellite receiver 110 and the satellite receiver 120 are eachoperable to support the TTCM encoder 112 and the TTCM decoder 122contained therein. The FIG. 1 shows one of the many embodiments whereTTCM coding (TTCM encoding and TTCM decoding) may be performed accordingto any one or more of the various embodiments of the invention.

FIG. 2 is a system diagram illustrating an embodiment of a HDTVcommunication system 200 that is built according to the invention. AnHDTV transmitter 220 is communicatively coupled to a tower 221. The HDTVtransmitter 220, using its tower 221, transmits a signal to a localtower dish 212 via a wireless communication channel. The local towerdish 212 communicatively couples to an HDTV set top box receiver 210 viaa coaxial cable. The HDTV set top box receiver 210 includes thefunctionality to receive the wireless transmitted signal that has beenreceived by the local tower dish 212; this may include anytransformation and/or down-converting as well to accommodate anyup-converting that may have been performed before and duringtransmission of the signal from the HDTV transmitter 220 and its tower221.

The HDTV set top box receiver 210 is also communicatively coupled to anHDTV display 230 that is able to display the demodulated and decodedwireless transmitted signals received by the HDTV set top box receiver210 and its local tower dish 212. The HDTV transmitter 220 (via itstower 221) transmits a signal directly to the local tower dish 412 viathe wireless communication channel in this embodiment. In alternativeembodiments, the HDTV transmitter 220 may first receive a signal from asatellite 250, using a satellite earth station 222 that iscommunicatively coupled to the HDTV transmitter 220, and then transmitthis received signal to the to the local tower dish 212 via the wirelesscommunication channel. In this situation, the HDTV transmitter 220operates as a relaying element to transfer a signal originally providedby the satellite 250 that is destined for the HDTV set top box receiver210. For example, another satellite earth station may first transmit asignal to the satellite 250 from another location, and the satellite 250may relay this signal to the satellite earth station 222 that iscommunicatively coupled to the HDTV transmitter 220. The HDTVtransmitter 220 performs receiver functionality and then transmits itsreceived signal to the local tower dish 212.

In even other embodiments, the HDTV transmitter 220 employs thesatellite earth station 222 to communicate to the satellite 250 via awireless communication channel. The satellite 250 is able to communicatewith a local satellite dish 213; the local satellite dish 213communicatively couples to the HDTV set top box receiver 210 via acoaxial cable. This path of transmission shows yet another communicationpath where the HDTV set top box receiver 210 may communicate with theHDTV transmitter 220.

In whichever embodiment and whichever signal path the HDTV transmitter220 employs to communicate with the HDTV set top box receiver 210, theHDTV set top box receiver 210 is operable to receive communicationtransmissions from the HDTV transmitter 220.

The HDTV transmitter 220 includes an embodiment of the TTCM encoder 112described above. Similarly, the HDTV set top box receiver 210 includesan embodiment of the TTCM decoder 122 described above. Cooperatively,the TTCM encoder 112 and the TTCM decoder 122 form a TTCM codecaccording to the invention. The FIG. 2 shows yet another of the manyembodiments where TTCM coding (TTCM encoding and TTCM decoding) may beperformed according to any one or more of the various embodiments of theinvention.

FIG. 3 is a system diagram illustrating an embodiment of a cellularcommunication system 300 that is built according to the invention. Amobile transmitter 310 includes a local antenna 315 communicativelycoupled thereto. The mobile transmitter 310 may be any number of typesof transmitters including a cellular telephone, a wireless pager unit, amobile computer having transmit functionality, or any other type ofmobile transmitter. The mobile transmitter 310 transmits a signal, usingits local antenna 315, to a receiving tower 345 via a wirelesscommunication channel. The receiving tower 345 is communicativelycoupled to a base station receiver 340; the receiving tower 345 isoperable to receive data transmission from the local antenna 315 of themobile transmitter 310 that have been communicated via the wirelesscommunication channel. The receiving tower 345 communicatively couplesthe received signal to the base station receiver 340.

The mobile transmitter 310 includes an embodiment of the TTCM encoder112 described above. Similarly, the base station receiver 340 includesan embodiment of the TTCM decoder 122 described above. Cooperatively,the TTCM encoder 112 and the TTCM decoder 122 form a TTCM codecaccording to the invention. The FIG. 3 shows yet another of the manyembodiments where TTCM coding (TTCM encoding and TTCM decoding) may beperformed according to any one or more of the various embodiments of theinvention.

FIG. 4 is a system diagram illustrating another embodiment of a cellularcommunication system 400 that is built according to the invention. Fromcertain perspectives, the cellular communication system 400 of the FIG.4 may be viewed as being the reverse transmission operation of thecellular communication system 300 of the FIG. 3. A base stationtransmitter 420 is communicatively coupled to a transmitting tower 425.The base station transmitter 420, using its transmitting tower 425,transmits a signal to a local antenna 435 via a wireless communicationchannel. A mobile receiver 430 includes the local antenna 435communicatively coupled thereto. The local antenna 435 iscommunicatively coupled to a mobile receiver 430 so that the mobilereceiver 430 may receive transmission from the transmitting tower 435 ofthe base station transmitter 420 that have been communicated via thewireless communication channel. The local antenna 435 communicativelycouples the received signal to the mobile receiver 430. It is noted thatthe mobile receiver 430 may be any number of types of receiversincluding a cellular telephone, a wireless pager unit, a mobile computerhaving receive functionality, or any other type of mobile receiver.

The base station transmitter 420 includes an embodiment of the TTCMencoder 112 described above. Similarly, the mobile receiver 430 includesan embodiment of the TTCM decoder 122 described above. Cooperatively,the TTCM encoder 112 and the TTCM decoder 122 form a TTCM codecaccording to the invention. The FIG. 4 shows yet another of the manyembodiments where TTCM coding (TTCM encoding and TTCM decoding) may beperformed according to any one or more of the various embodiments of theinvention.

FIG. 5 is a system diagram illustrating an embodiment of a microwavecommunication system 500 that is built according to the invention. Atransmitter 510 is communicatively coupled to a microwave tower 515. Thetransmitter 510, using its microwave tower 515, transmits a signal to amicrowave tower 525 via a wireless communication channel. A receiver 520is communicatively coupled to the microwave tower 525. The microwavetower 525 is able to receive transmissions from the microwave tower 515that have been communicated via the wireless communication channel.

The transmitter 510 includes an embodiment of the TTCM encoder 112described above. Similarly, the receiver 520 includes an embodiment ofthe TTCM decoder 122 described above. Cooperatively, the TTCM encoder112 and the TTCM decoder 122 form a TTCM codec according to auni-directional communication implementation of the invention.

However, in a bi-directional communication implementation of theinvention, the transmitter 510 also includes an embodiment of a TTCMdecoder 522; the embodiment of the TTCM decoder 522 may be viewed asbeing duplicative of the TTCM decoder 122 within the receiver 520. TheTTCM encoder 112 and the TTCM decoder 522 together form a TTCM codec 511within the transmitter 510. The receiver 520 also includes an embodimentof a TTCM encoder 512; the embodiment of the TTCM encoder 512 may beviewed as being duplicative of the TTCM encoder 112 within thetransmitter 510. The TTCM decoder 122 and the TTCM encoder 512 togetherform a TTCM codec 521 within the receiver 520.

The embodiment of the invention described within the FIG. 5 shows anembodiment where a TTCM codec, built according to the invention, may beviewed as within a single device (such as the TTCM codec 511 within thetransmitter 510 or the TTCM codec 521 within the receiver 520) or asbeing distributed across two separate devices, namely, the transmitter510 and the receiver 520.

The FIG. 5 shows yet another of the many embodiments where TTCM coding(TTCM encoding and TTCM decoding) may be performed according to any oneor more of the various embodiments of the invention.

FIG. 6 is a system diagram illustrating an embodiment of apoint-to-point communication system 600 that is built according to theinvention. A mobile unit 610 includes a local antenna 615communicatively coupled thereto. The mobile unit 610, using its localantenna 615, transmits a signal to a local antenna 625 via a wirelesscommunication channel. A mobile unit 620 includes the local antenna 625communicatively coupled thereto. The mobile unit 620 may receivetransmissions from the mobile unit 610 that have been communicated viathe wireless communication channel.

The mobile unit 610 includes an embodiment of the TTCM encoder 112described above. Similarly, the mobile unit 620 includes an embodimentof the TTCM decoder 122 described above. Cooperatively, the TTCM encoder112 and the TTCM decoder 122 form a TTCM codec according to auni-directional communication implementation of the invention.

However, in a bi-directional communication implementation of theinvention, the mobile unit 610 also includes an embodiment of a TTCMdecoder 622; the embodiment of the TTCM decoder 622 may be viewed asbeing duplicative of the TTCM decoder 122 within the mobile unit 620.The TTCM encoder 112 and the TTCM decoder 622 together form a TTCM codec611 within the mobile unit 610. The mobile unit 620 also includes anembodiment of a TTCM encoder 612; the embodiment of the TTCM encoder 612may be viewed as being duplicative of the TTCM encoder 112 within themobile unit 610. The TTCM decoder 122 and the TTCM encoder 612 togetherform a TTCM codec 621 within the mobile unit 620.

The embodiment of the invention described within the FIG. 6 shows anembodiment where a TTCM codec, built according to the invention, may beviewed as within a single device (such as the TTCM codec 611 within themobile unit 610 or the TTCM codec 621 within the mobile unit 610) or asbeing distributed across two separate devices, namely, the mobile unit610 and the mobile unit 620.

The FIG. 6 shows yet another of the many embodiments where TTCM coding(TTCM encoding and TTCM decoding) may be performed according to any oneor more of the various embodiments of the invention.

FIG. 7 is a system diagram illustrating an embodiment of auni-directional TTCM communication system 700 that is built according tothe invention. A transmitter 710 communicates with a receiver 720 via auni-directional communication channel 799. The uni-directionalcommunication channel 799 may be a wireline (or wired) communicationchannel or a wireless communication channel without departing from thescope and spirit of the invention. The wired media by which theuni-directional communication channel 799 may be implemented are varied,including coaxial cable, fiber-optic cabling, and copper cabling, amongother types of “wiring.” Similarly, the wireless manners in which theuni-directional communication channel 799 may be implemented are varied,including satellite communication, cellular communication, microwavecommunication, and radio communication, among other types of wirelesscommunication.

The transmitter 710 includes an embodiment of the TTCM encoder 112.Similarly, the receiver 720 includes an embodiment of the TTCM decoder122. Cooperatively, the TTCM encoder 112 and the TTCM decoder 122 form aTTCM codec according to the invention. The FIG. 7 shows yet another ofthe many embodiments where TTCM coding (TTCM encoding and TTCM decoding)may be performed according to any one or more of the various embodimentsof the invention.

FIG. 8 is a system diagram illustrating an embodiment of abi-directional TTCM communication system 800 that is built according tothe invention. A transceiver 841 and a transceiver 842 are able tocommunicate with one another via a bi-directional communication channel899. The bi-directional communication channel 899 may be a wireline (orwired) communication channel or a wireless communication channel withoutdeparting from the scope and spirit of the invention. The wired media bywhich the bi-directional communication channel 899 may be implementedare varied, including coaxial cable, fiber-optic cabling, and coppercabling, among other types of “wiring.” Similarly, the wireless mannersin which the bi-directional communication channel 899 may be implementedare varied, including satellite communication, cellular communication,microwave communication, and radio communication, among other types ofwireless communication.

The transceiver 841 includes a TTCM codec 811 that includes a TTCMencoder 112 and a TTCM decoder 822. Similarly, transceiver 842 includesa TTCM codec 821 that includes a TTCM decoder 122 and a TTCM encoder812. The TTCM codec 811 and the TTCM codec 821 may be viewed as beingduplicative of one another within the transceivers 841 and 842.

The FIG. 8 shows yet another of the many embodiments where TTCM coding(TTCM encoding and TTCM decoding) may be performed according to any oneor more of the various embodiments of the invention.

FIG. 9 is a system diagram illustrating an embodiment of a one to manyTTCM communication system 900 that is built according to the invention.A transmitter 910 is able to communicate, via broadcast in certainembodiments, with a number of receivers, shown as receivers 910, 920, .. . , and 940 via a uni-directional communication channel 999. Theuni-directional communication channel 999 may be a wireline (or wired)communication channel or a wireless communication channel withoutdeparting from the scope and spirit of the invention. The wired media bywhich the bi-directional communication channel 999 may be implementedare varied, including coaxial cable, fiber-optic cabling, and coppercabling, among other types of “wiring.” Similarly, the wireless mannersin which the bi-directional communication channel 999 may be implementedare varied, including satellite communication, cellular communication,microwave communication, and radio communication, among other types ofwireless communication.

A distribution point 950 is employed within the one to many TTCMcommunication system 900 to provide the appropriate communication to thereceivers 910, 920, . . . , and 940. In certain embodiments, thereceivers 910, 920, . . . , and 940 each receive the same communicationand individually discern which portion of the total communication isintended for themselves.

The transmitter 910 includes an embodiment of the TTCM encoder 112.Similarly, each of the receivers 910, 920, . . . , and 940 includes anembodiment of the TTCM decoder; specifically, the receiver 920 includesan embodiment of the TTCM decoder 122; the receiver 930 includes anembodiment of the TTCM decoder 932; and the receiver 940 includes anembodiment of the TTCM decoder 942. Cooperatively, the TTCM encoder 112and each of the TTCM decoders 122, 932, . . . , and 942 form TTCM codecsaccording to the invention. The FIG. 9 shows yet another of the manyembodiments where TTCM coding (TTCM encoding and TTCM decoding) may beperformed according to any one or more of the various embodiments of theinvention.

FIG. 10 is a system diagram illustrating an embodiment of a satellitereceiver set-top box system 1000 that is built according to theinvention. The satellite receiver set-top box system 1000 includes anadvanced modulation satellite receiver 1010 that is implemented in anall digital architecture. The satellite receiver set-top box system 1000includes a satellite tuner 1002 that receives a signal via the L-band.The satellite tuner 1002 extracts I,Q (in-phase and quadrature)components from a signal received from the L-band and provides them tothe advanced modulation satellite receiver 1010. The advanced modulationsatellite receiver 1010 includes an embodiment of the TTCM decoder 112.The advanced modulation satellite receiver 1010 communicatively couplesto an HDTV MPEG-2 (Motion Picture Expert Group) transport de-mux,audio/video decoder and display engine 1020. Both the advancedmodulation satellite receiver 1010 and the HDTV MPEG-2 transport de-mux,audio/video decoder and display engine 1020 communicatively couple to ahost central processing unit (CPU) 1030. The HDTV MPEG-2 transportde-mux, audio/video decoder and display engine 1020 also communicativelycouples to a memory module 1032 and a conditional access functionalblock 1034. The HDTV MPEG-2 transport de-mux, audio/video decoder anddisplay engine 1020 provides HD video and audio output that may beprovided to an HDTV display.

The advanced modulation satellite receiver 1010 is a single-chip digitalsatellite receiver supporting the TTCM decoder 122 and variable coderate operation. Several of the many embodiments of the variable coderate operation are described in even more detail below. Multiplemodulations (constellations and mappings) are supported with iteratively(turbo) decoded error correction coding within the TTCM decoder 122. Theadvanced modulation satellite receiver 1010 is operable to receivecommunication provided to it from a transmitter device that includes aTTCM encoder according to the invention.

It is noted that each of the various embodiments described above inwhich TTCM coding (TTCM encoding and/or TTCM decoding) is performed isoperable to support variable code rate coding according to theinvention. As will be described in the various embodiments below, thisvariable code rate functionality may include rotating through a numberof various modulations (of different constellations) and mapping forthose various modulations.

FIG. 11 is a system diagram illustrating an embodiment of a TTCMcommunication system 1100 that is built according to the invention. TheTTCM communication system 1100 includes a transmitter 1110 and areceiver 1120 that are communicatively coupled to one another via acommunication channel that introduces Additive White Gaussian Noise(AWGN) to the signal. The communication channel may be wireline orwireless according to the invention. The AWGN communication channel maybe viewed as being a relatively noisy communication channel.

The transmitter 1110 includes a TTCM encoder 112 that encodes one ormore information symbols and then modulates those encoded symbolsaccording to a constellation and a mapping. The transmitter 1110 thenprepares this signal for transmission across the communication channel.At the other end of the communication channel, the receiver 1120includes a TTCM decoder 122 that receives and estimates the encodedsymbols that have been transmitted across the communication channel.Further details of the operation of the various functional blockscontained within the TTCM encoder 112 and the TTCM decoder 122 aredescribed in more detail below.

In addition, a rate control sequencer 1150 provides one or more ratecontrols to the turbo encoder 1111 and the symbol mapper 1121 of theTTCM encoder 112 and to the TTCM decoder 122. This rate controlsequencer 1150 provides rate control sequences (which may include as fewas one rate control (RC) and as many as several RCs). Each RC includesone or more modulations (constellations and mappings). Each modulationprovides a bandwidth efficiency that may be viewed as being a totalnumber of information bits per symbol that is encoded; a number ofredundancy bits may also be contained therein. Each of the TTCM encoder112 and the TTCM decoder 122 is operable to cycle through the ratecontrol sequence at their respective locations when performing encodingand decoding of symbols, respectively.

Generally speaking within the TTCM encoder 112, the turbo encoder 1111performs the symbol encoding and the symbol mapper 1121 maps thoseencoded symbols to the appropriate modulation according to the ratecontrol sequence provided by the rate control sequencer 1150. Similarly,generally speaking within the TTCM decoder 122, the TTCM decoder 122performs calculations that are employed to perform decoding of thereceived symbols according to the rate control sequence provided by therate control sequencer 1150. There are a whole host of variousembodiments in which various modulations (having various modulations andvarious mappings), and various periodic sequencing of rate controlsequence may be used to perform the encoding and decoding of data usingthe TTCM techniques described herein. In some embodiments, the ratecontrol sequence is adaptively changed during operation to provide forimproved performance. In other embodiments, predetermined rate controlsequences are employed.

In adaptive embodiments, certain operating conditions may be employed,such as a measurement of the communication channel's SNR, to direct thechanging of the rate control sequence or rate control sequences to beused by both the TTCM encoder 112 and the TTCM decoder 122. It isunderstood that either one or both of the TTCM encoder 112 and the TTCMdecoder 122 may perform the measurement of such operating conditions anddirect the TTCM communication system 1100 to change rate controlsequences. In some embodiments, such as a uni-directional communicationsystem embodiment, it may make more sense for the transmitter to performsuch measurement and direction, whereas within bi-directionalcommunication system embodiments, either of the transceivers may providesuch functionality. The particular implementation may be left to one whoimplements the invention in a particular application. There existseveral options that may be employed to adaptively/dynamically changethe rate control sequence.

For example, one embodiment operates such that the transmitter is amaster to the receiver (which operates as a slave). The transmitterdetermines some operational parameter, such as the Signal to Noise Ratio(SNR) of the AWGN communication channel (or some other parameterincluding, but not limited to, an operating condition of thecommunication system, the system's configuration, and/or the availableresources of the communication system), and then the transmitter directsthe rate control sequencer 1150 so that both the transmitter and thereceiver change to a new rate control sequence synchronously.

In another embodiment, the transmitter is a slave to the receiver (whichoperates as a master). The receiver determines some operationalparameter, such as the Signal to Noise Ratio (SNR) of the AWGNcommunication channel (or some other parameter including, but notlimited to, an operating condition of the communication system, thesystem's configuration, and/or the available resources of thecommunication system), and then the receiver directs the rate controlsequencer 1150 so that both the transmitter and the receiver change to anew rate control sequence synchronously.

In even other embodiments, the transmitter and the receiver operatecooperatively to perform any changing to a new rate control sequence.

It is also understood that a variety of means of modulation,transmission, receipt, and demodulation may be performed to generate theanalog signals to be transmitted across the communication channelwithout departing from the scope and spirit thereof. Each and any suchmeans may be practiced according to the invention while performing theTTCM encoding/decoding described herein.

FIG. 12 is a diagram illustrating a single interleaver embodiment of theturbo encoder 1111 of the FIG. 11. The variable code rate functionalitydescribed herein may be performed within this single interleaverembodiment of the turbo encoder 1111. Input bits are providedsimultaneously to a top path and a bottom path. The top path includes atop constituent trellis encoder, and the bottom path includes a bottominterleaver communicatively coupled to a bottom constituent trellisencode. A variety of interleaves may be performed as selected for theparticular application within the bottom interleaver. The outputs fromthe top and bottom paths are provided to a multiplexor (MUX) whoseselection is provided by a clock signal that is clocked at ½ the rate atwhich the input bits are provided to the top and bottom paths. This way,the output of the MUX will alternatively select the outputs from the topand bottom paths.

These output bits are then output to a puncturing functional block. Incertain embodiments, no puncturing is performed on the bits output fromthe MUX; they are all simply passed as output from the puncturingfunctional block. However, in other embodiments, puncturing is performedaccording to the rate control sequence provided by the rate controlsequencer 1150. A variety of encoded symbols may then be then generatedaccording to the outputs from the top and bottom paths; the bottom pathbeing an interleaved path. These encoded symbols are then passed to thesymbol mapper according to the invention where the symbols are mappedaccording to the appropriate modulation (constellation and mapping) asgoverned by the rate control sequence provided by the rate controlsequencer 1150. The single interleaver embodiment of the turbo encoder1111 shows just one of the many embodiments in which TTCM encoding maybe performed. Other turbo encoding embodiments are also envisionedwithin the scope and spirit of the invention to support the variablecode rate functionality described herein.

It is noted that the interleaver within the FIG. 12 may be implementedsuch that it operates to correspond the order of the input bits with theorder in which the encoded symbols are output from this embodiment ofthe turbo encoder. That is to say, the first output, encoded symbolcorresponds to the first group of input bits (or first input symbol);the second output, encoded symbol corresponds to the second group ofinput bits (or second input symbol). Alternatively, the interleaver maybe implemented such that corresponding the order of the input bits (orsymbols) need not necessarily correspond to the output order of theencoded symbols to the input order of the groups of input bits (or inputsymbols).

FIG. 13 is a diagram illustrating a dual interleaver embodiment of theturbo encoder 1111 of the FIG. 11. Similar to the embodiment of the FIG.12, the variable code rate functionality described herein may beperformed within this dual interleaver embodiment of the turbo encoder1111. Input bits are provided simultaneously to a top path and a bottompath. The top path includes a top interleaver communicatively coupled toa top constituent trellis encoder, and the bottom path includes a bottominterleaver communicatively coupled to a bottom constituent trellisencoder.

It is also noted here (similar to FIG. 12) that the interleavers withinthe FIG. 13 may be implemented such that they operate to correspond theorder of the input bits with the order in which the encoded symbols areoutput from this embodiment of the turbo encoder. That is to say, thefirst output, encoded symbol corresponds to the first group of inputbits (or first input symbol); the second output, encoded symbolcorresponds to the second group of input bits (or second input symbol).Alternatively, the interleaver may be implemented such thatcorresponding the order of the input bits (or symbols) need notnecessarily correspond to the output order of the encoded symbols to theinput order of the groups of input bits (or input symbols).

The outputs from the top and bottom paths are provided to a multiplexor(MUX) whose selection is provided by a clock signal that is clocked at ½the rate at which the input bits are provided to the top and bottompaths. This way, the output of the MUX will alternatively select theoutputs from the top and bottom paths.

As with the embodiment described above in the FIG. 12 for theinterleaving performed by the bottom interleaver, a variety ofinterleaves may be performed as selected for the particular application.The following example shows one embodiment of how the interleaving maybe performed for the top interleaver and the bottom interleaver.

For each of the top interleaver and the bottom interleaver, we let π₀and π₁ be the interleaves for each bit within the two bit input symbol,i₀i₁. According to the FIG. 13, we employ the following modifiedinterleavers (Top interleaver and Bottom interleaver) within theencoding process; these modified interleavers are each variants of theinterleaver, π_(l), as defined below. There are, in effect, twointerleaves that are functionally performed within the Top interleaver,and two interleaves are functionally performed within the Bottominterleaver. A total of four interleaves are performed by the Topinterleaver and Bottom interleaver in this embodiment. These interleavesare performed independently for each bit within the two bit inputsymbol, i₀i₁. The decoding process, described in more detail below, mayemploy the modified interleaving/de-interleaving shown here duringinitialization; however, when performing actual decoding of a receivedsymbol's bits, it only employs the non-modified interleave π_(l), andthe de-interleaver, π_(l) ⁻¹. Within this dual interleaver embodiment ofthe turbo encoder 1111, the modified interleaving is performed asfollows:

Top interleaver=i for i mod 2=0 (for even positions)

Top interleaver=π_(l) ⁻¹(i) for i mod 2=1 (for odd positions)

Bottom interleaver=π_(l) (i) for i mod 2=0

Bottom interleaver=i for i mod 2=1

Where, l=0,1 for two bit input symbol, i₀i₁.

This modified interleaving is performed to ensure the following: when weinput a symbol sequence, S₁S₂S₃S₄, then we want encoded correspondingoutput from those symbols to be in the same order, namely, the encodedoutput for S₁, followed by the encoded output for S₂, followed by theencoded output for S₃, and finally followed by the encoded output forS₄. The output encoded symbol sequence, shown as BTBT, will maintainthis sequential order (based on the order of the input symbols) becauseof the modified interleaving performed herein.

In other words, the input symbols (or input bits) come into the encoderaccording to a particular sequence, and the encoded symbols that areoutput from the TTCM encoder leave according to that same sequence.

Again, this interleaving shows just one example of how interleaving maybe performed according to the invention. Other interleaves may also bedesigned for a particular application. This particular interleaving isused to illustrate the functionality of the invention in severalembodiments of the invention in the various Figures and writtendescription.

These output bits, after having undergone interleaving and encoding, arethen output to a puncturing functional block. In certain embodiments, nopuncturing is performed on the bits output from the MUX. However, inother embodiments, puncturing is performed according to the rate controlsequence provided by the rate control sequencer 1150. A variety ofencoded symbols may then be generated according to the outputs from thetop and bottom paths. These encoded symbols are then passed to thesymbol mapper according to the invention where the symbols are mappedaccording to the appropriate modulation (constellation and mapping) asgoverned by the rate control sequence provided by the rate controlsequencer 1150. The dual interleaver embodiment of the turbo encoder1111 shows yet another of the many embodiments in which TTCM encodingmay be performed. It is noted that other turbo encoding embodiments arealso envisioned within the scope and spirit of the invention to supportthe variable code rate functionality described herein.

FIG. 14 is a diagram illustrating an embodiment of a systematic encoder1400 that is built according to the invention. In general terms, thesystematic encoder 1400 shows an encoder that encodes “a” input bits(shown as i₀, i₁, . . . , and i_((a−1))). The systematic encoder 1400 isa rate a/b encoder where “a” input bits are provided and “b” output bitsare output. The “b” output bits include “x” number of redundancy bits(shown as c_(x), c_((x−1)), . . . , and c₀) that are coded as a functionof one or more of the “a” input bits as well as each of the “a” inputbits themselves. A systematic encoder may be viewed as being an encoderwhere the input bits are explicitly represented and available in theoutput of the encoder. In addition, one or more uncoded bits u may beprovided as output of the encoder without having undergone any encodingat all. It is noted that sum of the total number of coded bits “x” andthe “a” input bits is equal to the number of output bits “b” in thisrate a/b encoder.

It is also noted that one or both of the top constituent trellis encoderand the bottom constituent trellis encoder in the FIG. 12 or 13 may beimplemented using the systematic encoder 1400 of the FIG. 14.

FIG. 15 is a diagram illustrating an embodiment of a non-systematicencoder 1500 that is built according to the invention. In general terms,the non-systematic encoder 1500 shows an encoder that encodes “a” inputbits (shown as i₀, i₁, . . . , and i_((a−1))) to provide “b” output bits(shown as c_((b−1)), c_((b−2)), . . . , and c₀). A non-systematicencoder may be viewed as being an encoder where the input bits are notexplicitly represented and available in the output of the encoder. Inaddition, one or more uncoded bits u may be provided as output of theencoder without having undergone any encoding at all. While theinvention envisions employing either systematic or non-systematicencoding, a non-systematic encoder is employed to illustrate theinvention's variable code rate functionality in many of the variousFigures and description. It will be understood that systematic encodingmay also be employed to perform the various aspects of the invention aswell.

It is also noted that one or both of the top constituent trellis encoderand the bottom constituent trellis encoder in the FIG. 12 or 13 may beimplemented using the non-systematic encoder 1500 of the FIG. 15.

FIG. 16 is a diagram illustrating an embodiment of a non-systematicencoder using puncturing and rate control sequencer to support multipleencoders 1600 according to the invention. Here, a single non-systematicencoder is implemented to perform the functionality of multipleencoders. A single hardware implementation may be used to support thefunctionality of each of a number of encoders. We illustrate thenon-systematic encoder as being a rate a/b non-systematic encoder thatthat encodes “a” input bits (shown as i₀, i₁, . . . , and i_((a−1))) toprovide “b” output bits (shown as c_((b−1)), c_((b−2)), . . . , and c₀).As mentioned above, one or more uncoded bits may also be used. Each ofthe rate control sequences provided by the rate control sequencer 1150may select none, some, or all of the “a” input bits and generate none,some, or all of the “b” output bits as well as selecting none, some, orall of a number of available uncoded bits. Puncturing is performed onthe output bits of the encoder to generate the various options ofencoded symbols that include encoded bits and/or uncoded bits.

To show the generic applicability of the variable code ratefunctionality of the invention, the rate a/b non-systematic encodercycles through a number of rate controls (that constitute a rate controlsequence—shown as a RC A1, a RC A2, . . . , and a RC Az). Each of theRCs has a particular bandwidth efficiency. Cooperatively, the bandwidthefficiencies of the individual RCs (RC A1, RC A2, . . . , and RC Az)define the rate control sequence provide an average bandwidth efficiencyacross the entire rate control sequence. These RCs are shown genericallyto illustrate the wide applicability of the variable code ratefunctionality of the invention.

The rate control sequencer 1150 may cycle through a predetermined ratecontrol sequence; it may adaptively select one or more new rate controlsequences based on operating conditions such as a communicationchannel's SNR, bandwidth requirements based on various userapplications, or according to some other consideration as well.

The rate control sequence as illustrated within the example embodimentshown in the FIG. 16 may be described as follows:

Within the encoder as implemented according to RC A1, two informationbits (i₀ and i₁) and one uncoded bit u are input to the encoder. Theoutput of the encoder punctures all of the coded bits except for c₂ andc₁, and the uncoded bit u; these remaining bits are then used togenerate a 3 bit symbol that will be mapped according to a 3 bit symbolmodulation (constellation and mapping) as defined by RC A1.

Within the encoder as implemented according to RC A2 one informationbits (i₁) is input to the encoder. The output of the encoder puncturesall of the coded bits except for c₄, c₃, . . . c₀; these remaining bitsare then used to generate a 5 bit symbol that will be mapped accordingto a 5 bit symbol modulation (constellation and mapping) as defined byRC A2.

Within the encoder as implemented according to RC Az, four informationbits (i₀, i₁, i₂, i₃) and one uncoded bit u are input to the encoder.The output of the encoder punctures all of the coded bits except for c₃,c₂, c₁, c₀, and the uncoded bit u; these remaining bits and the uncodedbit are then used to generate a 5 bit symbol that will be mappedaccording to a 5 bit symbol modulation (constellation and mapping) asdefined by RC Az. While the RC A2 and RC Az both employ 5 bit symbols,they may nevertheless employ different modulations (differentconstellations and different mappings) without departing from the scopeand spirit of the invention.

The rate a/b non-systematic encoder may then cycle through the ratecontrol sequence defined by the (RC A1, RC A2, . . . , and RC Az) apredetermined number of times within a data frame. Alternatively, therate a/b non-systematic encoder may adaptively select a new rate controlsequence based on operating conditions of the communication system inwhich the rate a/b non-systematic encoder is implemented. Each of theindividual RCs may be viewed as being functionality supported bydistinct encoders.

FIG. 17 is a diagram illustrating an embodiment of periodic sequencingof a non-systematic encoder using puncturing and rate control sequencer1700 according to the invention. In this example to show the periodicsequencing, a rate 4/6 non-systematic encoder is employed. The ratecontrol sequence in this embodiment includes the RCs (RC A1, RC A2 RC A2RC A1, and RC Az) having a period of 5 RCs.

The available input of this exemplary rate 4/6 non-systematic encoder is(i_(o), i₁, i₂, i₃) and the uncoded bit, and the available output is(c₅, c₄, c₃, c₂, c₁, c_(o)) as well as the uncoded bit. Puncturing isperformed to select a predetermined sub-set of all of the availableinput and output bits of the rate 4/6 non-systematic encoder. The inputcycles through the period of 5 RCs described above. The inputs bitscycle through the following sequence according to this particularperiod:

RC A1: ui₀i₁

RC A1: ui₀i₁

RC A2: 0i₁

RC A2: 0i₁

RC Az: ui₀i₁i₂i₃

The output bits of this period of RCs is as follows:

RC A1: uc₂c₁

RC A1: uc₂c₁

RC A2: c₄c₃c₂c₁c_(o)

RC A2: c₄c₃c₂c₁c_(o)

RC Az: uc₃c₂c₁c_(o)

Clearly, additional rate control sequences that include different RCsmay also be employed to perform and support the functionality describedherein. The generic embodiment of FIG. 17 shows how differentconstellations (3 bit symbols and 5 bit symbols in this example) may beused within a single rate control sequence. This means that variousmodulations, each having different numbers of total constellationpoints, may be used in a single rate control sequence.

In another embodiment of the invention, the encoder of the FIG. 17 isimplemented such that the remaining bits, output from the encoder, maybe groups to support multiple modulations. For example, for one of thegroups of output bits for one of the RCs, the remaining output bits c₄c₃are used for one modulation (such as a QPSK or APSK type constellationand mapping that employs 2 bits), and the other bits are c₂c₁c_(o) areused for another modulation (such as an 8 PSK type constellation andmapping that employs 3 bits). Other variations may also be employed aswell, such as those that operate using 6 available encoded bits. In sucha possible embodiment, 4 of the bits may be used for one modulation(such as a 16 QAM or 16 APSK type constellation and mapping that employs4 bits), and the other 2 bits may be used for another modulation (suchas a QPSK or APSK type constellation and mapping that employs 2 bits).

FIG. 18 is a diagram illustrating a generic embodiment of variablepuncturing, constellations, and mapping using a single encoder 1800according to the invention. The FIG. 18 particularly shows how encoderoutput bits are punctured, and how the remaining bits are associatedwith one or more particular constellations and how each of thoseconstellations may have a unique mapping. The control of the puncturing,the constellation, and the mapping are all governed by the rate controlsequencer 1150. Again, the rate control sequencer 1150 may cycle througha predetermined rate control sequence; it may adaptively select one ormore new rate control sequence based on operating conditions such as acommunication channel's SNR, bandwidth requirements based on varioususer applications, or according to some other consideration as well.

The available encoder output bits are provided to a functional blockthat may employ one or more of a number of multiple puncturing options.These puncturing options are shown generically as puncturing #1,puncturing #2, . . . , and puncturing #w. Each of these puncturingoptions is associated with one or more constellations (shown asconstellation #1, constellation #2, . . . , and constellation #x). Forexample, the output bits remaining after having performed the puncturing#1 are then associated with the constellation #1. The output bitsremaining after having performed the puncturing #2 may then beassociated with either the constellation #1 or the constellation #x. Theoutput bits remaining after having performed the puncturing #w are thenassociated with the constellation #2.

Each constellation is associated with one or more mappings, shown asmapping #1, mapping #2, . . . mapping #y. As an example, theconstellation #1 is associated with more than one mapping, namely,mapping #1, mapping #2, and mapping #y. The other constellations mayalso be associated with various mappings as well. The encoding processincludes performing encoding, puncturing, selection of a modulation(constellation and mapping).

As mentioned above, a number of types of encoders may be employedaccording to the invention, and the following examples of encoders showjust some of the possible encoder types that may be used.

FIG. 19 is a diagram illustrating an embodiment of a rate 1/2 recursiveconvolutional encoder with non-systematic output 1900 that is builtaccording to the invention. The rate is 1/2 as there is one inputinformation bit and two output encoded bits. The encoder receives asingle input bit and generates two encoded bits (c₁, c_(o)). Therecursive operation of the encoder in the FIG. 19 may be viewed asfollows. The input bit is selectively summed with delayed versions ofitself to generate the two encoded bits.

This encoder circuit represents one way to encode an input bit togenerate two encoded bits. Clearly, the invention envisions otherembodiments and types of encoders as well. This particular example ofthe rate 1/2 recursive convolutional encoder with non-systematic output1900 is used to illustrate the scalability and extendibility of theinvention across a number of encoding schemes. This rate 1/2 recursiveconvolutional encoder with non-systematic output 1900 will be used asone building block to generate a rate 2/5 encoder as will be describedbelow in FIG. 20.

FIG. 20 is a diagram illustrating an embodiment of a rate 2/5 prototypeencoder 2000 that is built according to the invention. Two bits areprovided at a time as an input symbol (having input bits i₁i_(o)) to therate 2/5 prototype encoder 2000. These two bits may be provided to therate 2/5 prototype encoder 2000 serially, or alternatively, in aparallel manner. The input of the rate 2/5 prototype encoder 2000includes both of these input bits. One of the bits of the input symbolis provided as output of the encoder, i_(o), but because both input bitsi₁i_(o) are not available in the form in which they are provided, theencoder may be viewed as a non-systematic encoder. In certain situationsas will be seen below, an uncoded bit may also be employed during theencoding.

The two binary consecutive inputs that are provided to the encoder maybe viewed as (i₀,i₁). These two binary consecutive inputs are providedto the rate 1/2 encoder of the FIG. 19 above. Two consecutive cycles areemployed, by providing inputs i_(o) (first) and then i₁ (second), togenerate the following outputs of the rate 1/2 encoder ((c_(0,1),c_(1,0)) and (c_(1,1), c_(1,0))). Three of these values are selected andare set to be the coded bits (c_(1,1)=c₂, c_(1,0)=c₁, c_(0,1)=c₀). Thecoded output bit c₃ is taken as the sum of the two binary consecutiveinputs, namely i_(o) and i₁. The final output coded bit c₄ is taken asthe second of the two binary consecutive inputs, namely i_(o). Thisparticular encoder is used to perform illustration of one example of theinvention's operation within many of the embodiments described below.

The encoding/decoding of bits put into the rate 2/5 prototype encoder2000 may be described mathematically as follows. We begin byestablishing the following notation.

1. S^(n)(m, i₀, i₁): the next state after inputting the symbol, i₀, i₁,to the rate 2/5 prototype encoder 2000 with the current state m.

2. S^(p)(m, i₀, i₁): the previous state after inputting the symbol, i₀,i₁, to the rate 2/5 prototype encoder 2000 with the current state m.

3. C^(n)(m, i₀, i₁): the output of a selected trellis used to performthe encoding/decoding by inputting the symbol, i₀,i₁, to the rate 2/5prototype encoder 2000 with the current state m.

4. c^(p)(m, i₀, i₁): the output of a selected trellis used to performthe encoding/decoding by inputting the symbol, i₀,i₁, to the rate 2/5prototype encoder 2000 with the previous state m.

5. app denotes using “a priori” probability. For example, app_(0,50)(1)is the app of i₀=1 for the 50^(th) symbol in a frame of data.

6. met denotes using metric of the index provided within theparentheses.

It is noted that any selected trellis may be employed to do thisencoding. One particular embodiment of a trellis is described in detailbelow in the FIG. 23, yet other trellises could similarly be usedwithout departing from the scope and spirit of the invention.

Within many of the following notations, the use of Greek letter andEnglish equivalent is understood as being the same element. For example,alpha=α; alpha_(—)0=α₀; beta=β; beta_(—)0=β₀; and so on.

The decoding process employs forward metrics (alphas) and backwardmetrics (betas), and extrinsic values according to the trellis employed.Each of these alphas, beta, and extrinsics are calculated as shown inthe generic manner described below.α_(k)(s)=min*_((i) ₀ _(i) ₁ _()=0, . . . , 3)[α_(k−1)(S ^(p)(s, i ₀ , i₁))+app _(0,k−1)(i ₀)+app _(1,k−1)(i ₁)+met _(t,k−1)(c ^(p)(s, i ₀ , i₁))]β_(k)(s)=min*_((i) ₀ _(i) ₁ _()=0, . . . , 3)[β_(k+1)(S ^(n)(s, i ₀ , i₁))+app _(0,k+1)(i ₀)+app _(1,k+1)(i ₁)+met _(t,k−1)(c ^(n)(s, i ₀ , i₁))]

It is noted that the variable “s” identifies the trellis state thatvaries from 0=000, 1=001, . . . , to 7=111.

We then calculate the following intermediate variables, E_(m)(s,i) andE_(l)(s,i), before calculating the extrinsic values (ext) that will beused to perform the final decoding.E ₀(s,i)=min*_(j=0,1)(met _(t,k)(c ^(n)(s,i,j))+β_(k)(S ^(n)(s,i,j))+app_(l,k)(j))ext _(0,k)(i)=min*_(s=0, . . . , 7){α_(k)(s)+E ₀(s,i)}

We also calculate the following ext.E _(l)(s,i)=min*_(j=0,1)(met _(t,k)(c ^(n)(s,j,i))+β_(k)(S^(n)(s,j,i))+app _(0,k)(j))ext _(l,k)(i)=min*_(s=0, . . . , 7){α_(k)(s)+E _(l)(s,i)}

It is noted that the value of i (i=0 or i=1) is the possible value forthe denoted decoded bit. After performing these above calculations, wethen use the following comparisons to make estimates of the input bits(i_(k,m), i_(k,l)).î _(0,k)=0, if we find that ext _(0,k)(1)+app _(0,k)(1)>ext_(0,k)(0)+app _(0,k)(0)î _(0,k)=1, if we find that ext _(0,k)(1)+app _(0,k)(1)<ext_(0,k)(0)+app _(0,k)(0)î _(l,k)=0, if we find that ext _(l,k)(1)+app _(l,k)(1)>ext_(l,k)(0)+app _(l,k)(0)î _(l,k)=1, if we find that ext _(l,k)(1)+app _(l,k)(1)<ext_(l,k)(0)+app _(l,k)(0)

These equations show the generic applicability of how to performdecoding of encoded bits according to one embodiment of the invention.Specific examples are also shown below of how the encoding/decoding maybe performed according to the invention while supporting variable coderate functionality in accordance with the invention. It is also noted,however, that other encoders may also be employed (besides the rate 2/5prototype encoder 2000) without departing from the scope and spirit ofthe invention.

FIG. 21 is a block diagram of a rate 2/5 systematic prototype encoder2100 that is built according to the invention. In general terms, therate 2/5 systematic prototype encoder 2100 encodes “2” input bits (shownas i₀ and i₁) and generates “3” redundancy output bits (shown as c₂, c₁,c₀) as well as explicitly providing the input bits (i₀ and i₁). Inaddition, one or more uncoded bits u may be provided as output of theencoder without having undergone any encoding at all. The rate 2/5systematic prototype encoder 2100 may be viewed as being just one ofmany possible embodiments of the rate a/b systematic prototype encoder1400 of the FIG. 14. It is also noted that the total rate of the rate2/5 systematic prototype encoder 2100 may be modified when employing anuncoded bit; a rate of 3/6 may be achieved when employing both inputbits (i₀ and i₁) and the uncoded bit as input and when performing nopuncturing of any bits at all.

FIG. 22 is a block diagram of the rate 2/5 non-systematic prototypeencoder 2000 of the FIG. 20 that is built according to the invention. Ingeneral terms, the rate 2/5 non-systematic prototype encoder 2000encodes “2” input bits (shown as i₀ and i₁) and generates “5” codedoutput bits (shown as c₄, c₃, c₂, c₁, c₀). In addition, one or moreuncoded bits u may be provided as output of the encoder without havingundergone any encoding at all. This illustration may be viewed as beinga prototype encoder from which many various types of encoding may beperformed. The rate 2/5 non-systematic prototype encoder 2000 may beviewed as being just one of many possible embodiments of the rate a/bnon-systematic prototype encoder 1500 of the FIG. 15. It is also notedthat the total rate of the rate 2/5 non-systematic prototype encoder2200 may be modified when employing an uncoded bit; a rate of 3/6 may beachieved when employing the “2” input bits (shown as i₀ and i₁) and theuncoded bit and when performing no puncturing of any bits at all.

FIG. 23 is a trellis diagram of a trellis 2300 employed by the rate 2/5non-systematic prototype encoder 2000 of the FIG. 20 that is builtaccording to the invention. It is noted that the trellis 2300 isselected offline and employed for all of the encoding/decoding in thisparticular embodiment. The trellis 2300 is an 8 state (3 register)trellis whose input/output trellis transfer function is shown within theFIG. 23. Each of the inputs is shown in symbol form of the 4 possibleinputs: 0 is for i₀i₁=00, 1 is for i₀i₁=01, 2 is for i₀i₁=10, and 3 isfor i₀i₁=11. The outputs are shown in octal; however, only the first 5bits are employed in this embodiment. Again, the rate 2/5 non-systematicprototype encoder 2000 of the FIG. 20 employs the trellis 2300, so onlyfive coded output bits are available. It is noted that all of themetrics according to the trellis 2300 may be represented by 16 uniquemetrics. Although there are 5 available bits as the output of the rate2/5 non-systematic prototype encoder 2000, when considering the numberof options as being 2⁵=32, it is seen that this particular trellisdesign may be represented with 16 distinct metrics. Moreover, anefficient hardware implementation allows these 16 distinct metrics to berepresented with 8 distinct metric values.

The 6^(th) bit is simply not existent in the rate 2/5 encoder describedhere; the outputs may be viewed, in octal form, as being xc₄c₃c₂c₁c₀,where x represents the unused bit. It is noted, however, that some otherembodiments (say, in a rate 2/6 encoder) may employ all 6 output bitswhen performing a rate 2/6 encoder.

For example, following the operation and function of the trellis,starting from the state of 0=000, the following transitions may beachieved:

When the encoder is in the state 0=000, and when the input i₀i₁=00=0,then the state of the encoder will transition to state 0=000, and theoutput will be xc₄c₃c₂c₁c₀=x00000=0. When the encoder is in the state0=000, and when the input i₀i₁=01=1, then the state of the encoder willtransition to state 2=010, and the output will be xc₄c₃c₂c₁c₀=x01100=14.When the encoder is in the state 0=000, and when the input i₀i₁=10=2,then the state of the encoder will transition to state 4=100, and theoutput will be xc₄c₃c₂c₁c₀=x11001=31. When the encoder is in the state0=000, and when the input i₀i₁=11=3, then the state of the encoder willtransition to state 6=110, and the output will be xc₄c₃c₂c₁c₀=x10101=25.

The transitions from other initial states may similarly be followedaccording to the trellis 2300. It is here noted that the trellis 2300represents one such trellis that may be employed to perform TTCMencoding. Other trellises may similarly be employed without departingfrom the scope and spirit of the invention. The encoding employs thistrellis when performing each of the various rate control sequencesprovided by the rate control sequencer 1150 to the rate 2/5non-systematic prototype encoder 2000. As will be seen below as well,this same trellis 2300 is also employed to performing decoding of datafor each of the various rate control sequences provided by the ratecontrol sequencer 1150.

FIG. 24 is a diagram illustrating the functional operation of thenon-systematic rate 2/5 encoder 2000 using puncturing and rate controlsequencer 1150 to support multiple encoders performing various ratecontrols according to the invention. Here, the non-systematic rate 2/5encoder 2000 is implemented to perform the functionality of multipleencoders. Puncturing is performed on the output bits of the encoder togenerate the various options of encoded symbols that include encodedbits and/or uncoded bits. The variable code rate functionality of theinvention, shown in the context of the non-systematic rate 2/5 encoder2000 cycles through a number of rate controls (that constitute a ratecontrol sequence—shown as a RC 0, a RC 9, and RC 1) in the FIG. 24. Eachof these RCs has a particular bandwidth efficiency. Cooperatively, thebandwidth efficiencies of the individual RCs (RC 0, a RC 9, and RC 1)define the rate control sequence provide an average bandwidth efficiencyacross this entire rate control sequence.

The rate control sequencer 1150 may cycle through a predetermined ratecontrol sequence; it may adaptively select one or more new rate controlsequences based on operating conditions such as a communicationchannel's SNR, bandwidth requirements based on various userapplications, or according to some other consideration as well.

The rate control sequence as illustrated within the example embodimentshown in the FIG. 24 may be described as follows:

Within the non-systematic rate 2/5 encoder 2000 as implemented accordingto RC 0, a rate 2/3 encoder is achieved. Two information bits (i₀ andi₁) are input to the non-systematic rate 2/5 encoder 2000. The output ofencoding punctures all of the coded bits except for c₃c₂c₁; theseremaining bits are then used to generate a 3 bit symbol that will bemapped according to a 3 bit symbol modulation (constellation andmapping) as defined by RC 0.

Within the encoder as implemented according to RC 9, a rate 1/3 encoderis achieved. One information bits (i₁) is input to the encoder. Theoutput of the encoder punctures all of the coded bits except for c₂c₁c₀;these remaining bits are then used to generate a 3 bit symbol that willbe mapped according to a 3 bit symbol modulation (constellation andmapping) as defined by RC 9.

Within the encoder as implemented according to RC 1, a rate 3/3 encoderis achieved. Two information bits (i₀ and i₁) and one uncoded bit u areinput to the encoder. The output of the encoder punctures all of thecoded bits except for c₄c₃ and the uncoded bit u; these remaining bitsand the uncoded bit (uc₄c₃) are then used to generate a 3 bit symbolthat will be mapped according to a 3 bit symbol modulation(constellation and mapping) as defined by RC A1.

The non-systematic rate 2/5 encoder 2000 may then cycle through the ratecontrol sequence defined by the (RC 0, a RC 9, and RC 1) a predeterminednumber of times within a data frame. Alternatively, the non-systematicrate 2/5 encoder 2000 may adaptively select a new rate control sequencebased on operating conditions of the communication system in which thenon-systematic rate 2/5 encoder 2000 is implemented. Each of theindividual RCs may be viewed as being functionality supported bydistinct encoders, yet a single device is operable to support all ofthese encoders according to the variable code rate functionalitydescribed herein. The above-referenced comments are also applicable tothe cases presented below in the FIGS. 25 and 26.

FIG. 25 shows additional rate controls supported by the non-systematicrate 2/5 encoder 2000 of the FIG. 20. Within the non-systematic rate 2/5encoder 2000 as implemented according to RCs 7,A&D, a rate 1/2 encoderis achieved. One information bit (i₁) is input to the non-systematicrate 2/5 encoder 2000. The output of encoding punctures all of the codedbits except for c₂c₁; these remaining bits are then used to generate a 2bit symbol that will be mapped according to the appropriate 2 bit symbolmodulation (constellation and mapping) as defined by one of the RCs7,A&D.

Within the encoder as implemented according to RC 8, a rate 0/2 encoderis achieved. No information bits are input to the encoder. The output ofthe encoder punctures all of the coded bits except for c₂c₀; theseremaining bits are then used to generate a 2 bit symbol that will bemapped according to a 2 bit symbol modulation (constellation andmapping) as defined by RC 8.

Within the encoder as implemented according to RCs 2,3,6,C,E&F, a rate2/2 encoder is achieved. Two information bits (i₀ and i₁) are input tothe encoder. The output of the encoder punctures all of the coded bitsexcept for c₄c₃; these remaining bits (c₄c₃) are then used to generate a2 bit symbol that will be mapped according to the appropriate 2 bitsymbol modulation (constellation and mapping) as defined by one of theRCs 2,3,6,C,E&F.

FIG. 26 shows yet additional rate controls supported by thenon-systematic rate 2/5 encoder 2000 of the FIG. 20. Within thenon-systematic rate 2/5 encoder 2000 as implemented according to RCs4&B, a rate 3/4 encoder is achieved. Two information bits (i₀ and i₁)and one uncoded bit u are input to the non-systematic rate 2/5 encoder2000. The output of encoding punctures all of the coded bits except forc₃c₂c₁ and the uncoded bit u, leaving uc₃c₂c₁; these remaining bits arethen used to generate a 4 bit symbol that will be mapped according tothe appropriate 4 bit symbol modulation (constellation and mapping) asdefined one of the RCs 4&B.

Within the non-systematic rate 2/5 encoder 2000 as implemented accordingto RC G, a rate 2/4 encoder is achieved. Two information bits (i₀ andi₁) are input to the non-systematic rate 2/5 encoder 2000. The output ofencoding punctures all of the coded bits except for c₃c₂c₁c₀; theseremaining bits are then used to generate a 4 bit symbol that will bemapped according to a 4 bit symbol modulation (constellation andmapping) as defined by RC G.

Within the non-systematic rate 2/5 encoder 2000 as implemented accordingto RC 5, a rate 2/4 encoder is achieved. One information bit (i₁) andone uncoded bit u are input to the non-systematic rate 2/5 encoder 2000.The output of encoding punctures all of the coded bits except for c₂c₁c₀and the uncoded bit u, leaving uc₂c₁c₀; these remaining bits are thenused to generate a 4 bit symbol that will be mapped according to a 4 bitsymbol modulation (constellation and mapping) as defined by RC 5.

FIG. 27 is a diagram illustrating an embodiment of periodic sequencingof a non-systematic rate 2/5 encoder 2000 using puncturing and ratecontrol sequencer 1150 according to the invention. The rate controlsequence in this embodiment includes the RCs (RC 0, RC 9, and RC 9)having a period of 3 RCs.

The available input of this non-systematic rate 2/5 encoder 2000 is(i_(o)i₁) as well as the uncoded bit, and the available output is(c₄c₃c₂c₁c_(o)) as well as the uncoded bit u, leaving the possibleoutput to be uc₄c₃c₂c₁c_(o). Puncturing is performed to select apredetermined sub-set of all of the available input and output bits ofthis non-systematic rate 2/5 encoder 2000. The input cycles through theperiod of 3 RCs described above. The inputs bits cycle through thefollowing sequence according to this particular period:

RC 0: i₀i₁;

RC 9: 0i₁;

RC 9: 0i₁;

The output bits of this period of RCs is as follows:

RC 0: c₃c₂c₁;

RC 9: c₂c₁c₀;

RC 9: c₂c₁c₀.

Clearly, additional rate control sequences that include different RCsmay also be employed to perform and support the functionality describedherein.

FIG. 28 shows additional periodic sequencing of rate controls supportedby the non-systematic rate 2/5 encoder 2000 of the FIG. 20. The ratecontrol sequence in this embodiment includes the RCs (RC D, RC 8, RC D,RC D, RC D, and RC 8) having a period of 6 RCs. Within the FIG. 28, theinputs bits cycle through the following sequence according to thisparticular period:

RC D: 0i₁

RC 8: 00

RC D: 0i₁

RC D: 0i₁

RC D: 0i₁

RC 8: 00

The output bits of this period of RCs is as follows:

RC D: c₂c₁

RC 8: c₂c₀

RC D: c₂c₁

RC D: c₂c₁

RC D: c₂c₁

RC 8: c₂c₀

FIG. 29 shows yet additional periodic sequencing of rate controlssupported by the non-systematic rate 2/5 encoder 2000 of the FIG. 20.The rate control sequence in this embodiment includes the RCs (RC B, RC5, RC B, RC 5, and RC 5) having a period of 5 RCs. Within the FIG. 29,the inputs bits cycle through the following sequence according to thisparticular period:

RC B: ui₀i₁

RC 5: u0i₁

RC B: ui₀i₁

RC 5: u0i₁

RC 5: u0i₁

The output bits of this period of RCs is as follows:

RC B: uc₃c₂c₁

RC 5: uc₂c₁c₀

RC B: uc₃c₂c₁

RC 5: uc₂c₁c₀

RC 5: uc₂c₁c₀

FIG. 30 shows yet additional periodic sequencing of rate controlssupported by the non-systematic rate 2/5 encoder 2000 of the FIG. 20.The rate control sequence in this embodiment includes the RCs (RC B, RC4, RC 4, RC 4, RC B, RC B, and RC 4) having a period of 7 RCs. Withinthe FIG. 30, the inputs bits cycle through the following sequenceaccording to this particular period:

RC B: ui₀i₁

RC 4: ui₀i₁

RC 4: ui₀i₁

RC 4: ui₀i₁

RC B: ui₀i₁

RC B: ui₀i₁

RC 4: ui₀i₁

The output bits of this period of RCs is as follows:

RC B: uc₃c₂c₁

RC 4: uc₃c₂c₁

RC 4: uc₃c₂c₁

RC 4: uc₃c₂c₁

RC B: uc₃c₂c₁

RC B: uc₃c₂c₁

RC 4: uc₃c₂c₁

The FIG. 30 shows one of the many possible examples of where differentmodulations are employed within the same rate control sequence. Thisparticular example shows the mixing of 16 APSK and 16 QAM modulations.Each of the modulations of these two RCs 4 and B employs differentconstellations altogether. It is understood that other modulations mayalso be mixed together within a rate control sequence without departingfrom the scope and spirit of the invention.

The FIGS. 31, 32, 33, 34, 35 and 36 are examples of some of the possiblemodulations (constellations and mappings) that may be employed inaccordance with the invention. It is noted that any number and types ofmodulations may be used (provided there are sufficient bits available inthe encoding). Some examples of modulations include BPSK (Binary PhaseShift Keying), QPSK (Quadrature Phase Shift Keying), QAM (QuadratureAmplitude Modulation), APSK (Amplitude Phase Shift Keying), and variantsthereof including 8 PSK, and higher orders of PSK, 16 QAM, and otherhigher orders of QAM (such as 64 QAM, 256 QAM, 1024 QAM), among othertypes of modulation.

FIG. 31 is a constellation diagram illustrating an embodiment of ratecontrol governed mapping to 8 PSK constellations according to theinvention. The FIG. 31 shows modulations (constellations and mappings)that may be performed according to the 3 bit symbols generated duringencoding and puncturing. Depending on the RCs employed within a ratecontrol sequence, when an 8 PSK modulation is selected, then one ofthese appropriate mappings may be selected. In one embodiment, thesethree modulations and their respective mappings are used to perform thefinal symbol mapping. The non-systematic rate 2/5 encoder 2000 employsthese modulations (constellations and their mappings) when employing theRCs (RC 0, RC 9, and RC 1). It is noted that these RCs are exemplary andthat other 3 bit symbol modulations and different mappings of those 3bit symbols modulations may also be employed without departing from thescope and spirit of the invention.

FIGS. 32, 33, and 34 are constellation diagrams illustrating embodimentsof rate control governed mapping to QPSK constellations according to theinvention. These FIGS. 32, 33, and 34 show modulations (constellationsand mappings) that may be performed according to the 2 bit symbolsgenerated during encoding and puncturing. It is noted that a variety ofQPSK modulations may be employed. The RCs 3,2,A within the FIG. 33 showmodulations whose constellations points are titled with respect to theI,Q axes. The RCs C,F,&7 within the FIG. 34 show modulations whoseconstellations points have different distances from the origin of theI,Q plane. A variety of modulations may performed according to QPSK,including embodiments where the constellation points align along the I,Qaxes themselves and those whose constellation points are notequidistantly spaces with respect to the origin of the I,Q plane. Thesestatements are also true for the other modulations employed as well. Theinvention envisions any number of modulations without departing from thescope and spirit of the invention.

FIG. 35 is a constellation diagram illustrating an embodiment of ratecontrol governed mapping to a 16 QAM constellation according to theinvention. The FIG. 35 shows the modulation for RC 4 that corresponds toa 16 QAM constellation having a particular mapping.

FIG. 36 is a constellation diagram illustrating an embodiment of ratecontrol governed mapping to 16 APSK constellations according to theinvention. The FIG. 36 shows the modulations for RCs G,5&B thatcorresponds to a 16 APSK constellation having a particular mapping.

The following table shows some examples of different rate controlsequences that may be supported by the non-systematic rate 2/5 encoder2000 and the rate control sequencer 1150. These are exemplary, andvariations thereof may be implemented without departing from the scopeand spirit of the invention. For example, other rate control sequencemay also be determined to operate within a given bandwidth of acommunication channel. In addition, it is also noted that the particularorder of the RCs within the following table may also be permutatedwithout departing from the scope and spirit of the invention. However,this permutation of the RCs within a rate control sequence may affectperformance in some cases.

This table shows embodiments of how to generate various rate controlsequences, according to various bandwidth efficiencies and periods,using the RCs described within the FIGS. 31, 32, 33, 34, 35 and 36.Bandwidth efficiency Constellation (bits/second/Hz) Rate controlsequence period 8 PSK 1.3333 (4/3) 099 3 1.5 (3/2) 09 2 1.6 (8/5) 009095 1.6667 (5/3) 009 3 1.7143 (12/7) 0009009 7 1.75 (7/4) 0009 4 2 0 1 2.1(21/10) 0000000001 10 2.2 (11/5) 00001 5 2.25 (9/4) 0001 4 2.3 (23/10)0001001001 10 2.4 (12/5) 00101 5 2.5 (5/2) 01 2 QPSK 0.6667 (2/3) D8DDD86 1 D 1 1.3333 (4/3) DDE 3 1.5 (3/2) DDEE 4 1.6 (8/5) DEE DEE DEE D 101.6667 (5/3) DEEEED 6 1.7143 (12/7) DDEEEDDEEEEEEEEEDDEEE 21 1.75 (7/4)DDEEEEEE 8 1.7778 (16/9) DDEEEEEEE 9 1.8 (9/5) EEDEE 5 1.8182 (20/11)EEEEEDEEEED 11 1.8333 (11/6) EEDEEEEEEDEE 12 1.8462 (24/13)DEEDEEEEEEEEE 13 1.8571 (13/7) EDDEEEEEEEEEEDEEEEEEE 21 16 QAM 3 4 1 16APSK 3 B 1 2.8 (14/5) BBBB5 5 2.7 (27/10) BBB5BB5BB5 10 2.6 (13/5) BB5B55 2.5 (5/2) B5 2 2.4 (12/5) B5B55 5 2.3 (23/10) B555B55B55 10 2.25 (9/4)B555 4 2.2 (11/5) B5555 5 2.1 (21/10) B555555555 10 2 5 1

FIG. 37 is a diagram illustrating an embodiment of variable puncturing,constellations, and mapping using the single non-systematic rate 2/5encoder 2000 according to the invention. The FIG. 37 particularly showshow encoder output bits are punctured, and how the remaining bits areassociated with one or more particular constellations and how each ofthose constellations may have a unique mapping. The control of thepuncturing, the constellations, and the mapping are all governed by therate control sequencer 1150. The rate control sequencer 1150 may cyclethrough a predetermined rate control sequence; it may adaptively selectone or more new rate control sequence based on operating conditions suchas a communication channel's SNR, bandwidth requirements based onvarious user applications, or according to some other consideration aswell.

The available encoder output bits are provided to a functional blockthat may employ one or more of a number of multiple puncturing options.In this embodiment, these puncturing options are shown as puncturing forthe following RCs: 0,9,1,8,2,3,6,C,E,F,7,A,D,4,B,5&G. Each of thesepuncturing options is associated with one or more constellations (theconstellations being of the form of 8 PSK, QPSK, 16 QAM, and 16 APSK).

In this embodiment, the output bits remaining after having performed thepuncturing for RCs 0, 9, and 1 are then associated with the 8 PSKconstellation. The output bits remaining after having performed thepuncturing for RCs 8,2,3,6,C,E,F,7,A&D are then associated with the QPSKconstellation. The output bits remaining after having performed thepuncturing for RC 4 are then associated with the 16 QAM modulation. Theoutput bits remaining after having performed the puncturing for RCs4,B,5&G are then associated with the 16 APSK constellation.

The RC for each particular puncturing is not only associated with aconstellation, but also with a mapping for that constellation. Forexample, even though each of the RCs 0, 9, and 1 is associated with the8 PSK constellation, each of them has a unique mapping. Similarly, eventhough each of the 8,2,3,6,C,E,F,7,A&D is associated with the QPSKmodulation, each of them has a unique mapping. Similarly, even thougheach of the RCs B,5,&G is associated with the 16 APSK modulation, eachof them has a unique mapping.

FIG. 38 is a system diagram illustrating an embodiment of a TTCM decodersystem 3800 that is built according to the invention. A received signalis provided to an I,Q extraction functional block that extracts the I,Q(in-phase and quadrature) components from the received signal that aremapped according to a RC as determined by the rate control sequencer1150. This may be viewed as being receiver pre-processing. The I,Q isthen mapped according to the modulation's appropriate constellation andmapping. Then, the mapped I,Q is passed to a metric generator 3733 thatalso receives the RC input from the rate control sequencer 1150. Themetric generator 3733 generates the appropriate metrics that aremeasured from the received I,Q to the constellation points within themodulation's appropriate constellation and mapping; the metrics areindexed by the mapping of the constellation points within themodulation; these metrics may be viewed as being the scaled Euclidiandistances from the location of the actual received symbol to theexpected constellation point locations within the modulation.

We then compare the metric associated with uncoded bit (u=0) with themetric associated with uncoded bit (u=1), and we select the smallermetric value. The smaller metric value is deemed a higher likelihoodthan the larger metric value according to this embodiment's convention.We also select value of u based on which metric has the smaller value.We select the possible value of the uncoded bit u to be 1 or 0 asdetermined by which of the associated metrics has the smaller value(metric associated with uncoded bit (u=0) or the metric associated withuncoded bit (u=1)). In certain embodiments, we may perform a min*operation that includes a logarithmic correction in selecting thesmaller metric. Alternatively, we may perform a max* operation thatincludes a logarithmic correction in selecting the smaller metric. It isnoted that the various embodiments of the invention may be implementedusing the max* operations in lieu of the min* operation when preferredin a given implementation.

The min* calculation may be expressed as follows:min*(A, B)=min(A, B)−ln(1+e ^(−|A−B|))The max* calculation may be expressed as follows:max*(A, B)=max(A, B)+ln(1+e ^(−|A−B|))

As an example of this operation, let us assume that we are using RC 5,whose punctured encoder output is in the form of uc₂c₁c₀. We then setu=1 and then u=0 for every combination (looking at c₂c₁c₀=111 as anexample), so we deal with the two possible values for uc₂c₁c₀=0111 anduc₂c₁c₀=1111. We then compare the location of the received symbol, asmapped within the constellation, to the two constellation points indexedby 0111 and 1111. We then select from these two constellation pointsindexed by 0111 and 1111 based on which one has the smaller valuedmetric. So, in the RC 5 example used here, we reduce the total number of16 metrics down to 8. We then store these 8 metric values and 8 possibleuncoded bit values (indexed by the metrics indices for each symbol in areceived frame), for subsequent use in decoding the uncoded bit after wehave decoded the input bits, i₀i₁. After we perform decoding of theinput bits, i₀i₁, then we will know with certainty what the bits c₂c₁c₀are, and then we may directly determine the uncoded bit value u based onthese 8 possible uncoded bit values that we have stored.

Continuing on with the decoding process and functionality, the metricsthat are calculated by the metric generator 3733 are then provided to atop (even) SISO 3711 and simultaneously to a bottom (odd) SISO 3712.Each of these SISOs 3711 and 3712 calculates forward metrics (alphas)and backward metrics (betas), and extrinsic values according to thetrellis employed (such as the trellis 2300). The calculation of exactlyhow to calculate these alphas, betas, and extrinsics according to thetrellis is performed within the TTCM decoder 122. These alphas, betas,and extrinsics are all calculated for each symbol within a frame that isto be decoded. These calculations of alphas, betas, and extrinsics areall based on the trellis and according to the RC provided by the RCinput from the rate control sequencer 1150. Starting with the top SISO3711, after the extrinsic values have been calculated, they are passedto an interleaver 3721 after which it is passed to the bottom SISO 3712as “a priori probability” (app) information. Similarly, after extrinsicvalues have been calculated within the bottom SISO 3712, they are passedto an interleaver 3722 after which it is passed to the top SISO 3711 as“a priori probability” (app) information. It is noted that a singledecoding iteration, within the iterative decoding process of the TTCMdecoder system 3800 consists of performing two SISO operations; that isto say, the iterative decoding process must pass through both the top(even) SISO 3711 and through the bottom (odd) SISO 3712.

After a significant level of confidence has been achieved and a solutionis being converged upon, or after a predetermined number of decodingiterations have been performed, then the output from the bottom (odd)SISO 3712 is passed as output to an output processor 3730. The operationof the SISOs 3711 and 3712 may generally be referred to as calculatingsoft symbol decisions of the symbol contained within the receivedsymbol. These soft symbol decisions may be performed on a true bit levelin certain embodiments. The output processor 3730 uses these soft symboldecisions to generate hard symbol decisions for the input bits i₀i₁ ofthe input symbol and to provide decoded output data.

Moreover, in the situation where we have uncoded bits u that result fromthe coding of the input bits, i₀i₁, we then also need to use as many as8 possible uncoded bit values (indexed by the metrics indices), so thatwe can directly determine the value of the uncoded bit. Even greaterdetail is provided below in the discussion associated with FIG. 43 thatcontinues on with the example embodiment of RC 5.

It is also noted that the app sequence for the top (even) SISO 3711 mustbe initialized before beginning the iterative decoding. The notation forthe app sequence app[i][j][k] is as follows:

1. i represents the possible binary value of the estimated bit

2. The positions of the estimated bit are denoted as follows: (j=0refers the first bit into the encoder and j=1 refers the second bit intothe encoder)

3. k is the index of the symbol's location within the data block (orframe).

More specifically, k represents the symbol index of the symbols in aframe of data,j is the bit index (j=0 for bit i₁ and j=1 for bit i₀),and i is the bit value (i=0 or 1). For example, app[1][0][50] representsthe app for bit i₁ of the 50^(th) symbol being a value of 1.

At least two ways to initialize app[i][j][k] are described below:

1. app[i][j][k]=0.0, i,j,ε{0,1}, k ε{0, . . . , N−1}. Each and everyTTCM coding, using any of the possible combination of RCs for a ratecontrol sequence may use this initialization.

2. The TTCM coding with RC sequence 8 can have different initializationdefined as follows.

-   -   app[0][1][k]=0.0    -   app[1][1][k]=MAX, for all possible k.    -   app[0][0][k]=0.0

For the sequence app[0][0][k], we may first define the sequence based onthe rate control sequence using the intermediate variable pP and pP*(which denotes the interleaved version of pP).

-   -   pP[1][0][k]=MAX for RC 8    -   pP[1][0][k]=0.0 otherwise

Then, we interleave this sequence with de-interleave π⁻¹ is employed togenerate the sequence pP*[1][0][k]. Finally, we define the initialapp[1][0][k] as follows:

-   -   app[1][0][k]=pP[1][0][k] if k mod2=0    -   app[1][0][k]=pP*[1][0][k] if k mod2=1

Moreover, by using the interleaving π, we can directly define theapp[1][0][k] as follows:

-   -   app[1][1][k]=MAX if RC [{circumflex over (π)}(k)]=8    -   app[1][0][k]=0.0 otherwise

Further detail of the TTCM decoding functionality and operation isprovided within several of the following Figures.

FIG. 39 is a system diagram illustrating an embodiment of an alternativeTTCM decoder system 3900 that recycles a single SISO according to theinvention. The alternative TTCM decoder system 3900 receives as inputthe I,Q from a received signal. Similar to the embodiment of the FIG.34, an I,Q extraction functional block may also be employed to extractthese I,Q inputs within the FIG. 39 as well when performing receiverpre-processing. A ping pong buffer, employing two input buffers, isemployed for efficient buffering of the I,Q inputs. The I,Q inputs arethen passed to the metric generator 3733. The functionality of themetric generator 3733 may be similar in both the FIG. 38 and the FIG.39.

The output of the metric generator 3733 is passed to the single SISO;the information necessary to perform decoding of any possible uncodedbits will be passed to the output processor 3730. The SISO calculatesforward metrics (alphas), backward metrics (betas), and extrinsic values(exts) according to the trellis employed (such as the trellis 2300) andprovides them to a functional block that is operable to perform bothinterleaving and de-interleaving (depending upon which SISO operation isbeing performed). The output of the interleaver/de-interleaverfunctional block is passed back to the SISO as app.

Similar to the embodiment of FIG. 38, it is noted that a single decodingiteration, within the iterative decoding process of the alternative TTCMdecoder system 3900 consists of performing two SISO operations; that isto say, the iterative decoding process must pass through both the SISOonce (when the SISO performs the top SISO functionality) and through theSISO again (when the SISO performs the bottom SISO functionality).

After a significant level of confidence for the soft symbol decisionswithin the SISO have been achieved and a solution is being convergedupon, or after a predetermined number of decoding iterations have beenperformed, then the output from the SISO is passed as output to theoutput processor 3730. These soft symbol decisions may also be performedon a true bit level in certain embodiments. The output processor 3730uses these soft symbol decisions to generate hard symbol decisions andto provide decoded output data. It is also noted that a similar appinitialization of the FIG. 38 may be used within the FIG. 39.

FIG. 40 is a diagram illustrating an embodiment of I,Q extraction thatis performed according to the invention. A received symbol, having amagnitude and phase is provided to an I,Q extraction block. This symbol(or signal) is mapped in a two dimensional space such that an in-phaseand a quadrature component. This in-phase measurement and the quadraturecomponent are provided as output from the I,Q extraction functionalblock.

FIG. 41 is a diagram illustrating an embodiment of received I,Q mappingperformed based on RC according to the invention. After the I,Qs areprovided, then according to the RC provided by the rate controlsequencer 1150, the received I,Q are mapped according to one of themodulation's constellations corresponding to the RC. Then, after theappropriate constellation has been selected, and the mapping has beendetermined based on the RC of the rate control sequence, the I,Q ismapped to a symbol in the appropriate modulation (with its particularconstellation and mapping). Afterwards, a mapped symbol is provided asoutput from the FIG. 40.

FIG. 42 is a diagram illustrating an embodiment of metric calculationperformed by a metric generator 3733 according to the invention. Aspecific example is provided in the FIG. 42 using the RC 9, and it willthen be understood how the metric calculation is performed for the othervarious modulations (constellations and mappings). The metriccalculation may be performed in a similar manner in the other ratecontrol sequences with their respective RCs.

The received symbol is mapped within this modulation (constellation andmapping). Then, the metric (scaled Euclidian distance) to each of theconstellation points, from the received symbol, is calculated andindexed according to the mapping of the respective constellation points.This distance corresponds to the calculation in the metric generatorthat may be performed as follows:Metric(Ux2x1x0)=1/(2sigmaˆ²)*[(Rx _(—) I−I_Coef)²+(Rx _(—) Q−Q_Coef)²]

Here, the scaling of the distance by [1/(2sigmaˆ²)] (where sigma is thestandard deviation of the normalized noise of the received symbol)accommodates for the normalized noise of the received symbol indetermining this distance. The I_Coef and the Q_Coef are the expectedlocations (in terms of I,Q) at which the received symbol is expected tobe mapped (constellation point location), and Rx_I and Rx_Q are theactual locations at which the received symbol is mapped.

For example, the metric corresponds to the distance from the receivedsymbol to the constellation point associated with the symbol 1=(001 inbinary) is shown as M(1); . . . ; and the metric corresponding to thedistance from the received symbol to the constellation point associatedwith the symbol 3=(011 in binary) is shown as M(3). These metrics areoutput from the metric generator 3733.

FIG. 43 is a functional block diagram illustrating an embodiment ofmetric mapping functionality that is performed according to theinvention. The received symbol metrics (received metric=M_(r)), indexedaccording to the modulation (constellation and mapping) according to theRC (as provided by the rate control sequencer 1150), are then passed toa functional block that transforms these received metrics to trellismetrics (trellis metric=M_(t)). These trellis metrics are then used tocalculate the alphas, betas, and extrinsics within the SISO. Thesealphas, betas, and extrinsics may be calculated using a min* approachaccording to the invention. Again, a max* approach may alternatively beused.

From the received I,Q values, a 2-bit metric for QPSK, a 3-bit metricM_(r)(x₂x₁x₀) for 8-PSK, and a 4-bit metric M_(r)(x₃x₂x₁x₀) for 16-QAMand 16-APSK can be computed. With either of these metrics, we may form a3-bit metric M_(t) that is to be sent to the SISO decoder with possibleuncoded bit information. However, metric used in the SISO decoderdepends on the trellis output that is a 5-bit symbol in general (usingthe rate 2/5 prototype encoder 2000). Some additional intelligence mustbe employed for proper assigning of these metrics to the trellis.

In order to have a universal decoder for all the RC number, sometransforms from the received metric M_(r)(x₃x₂x₁x₀) to M_(s)(x₂x₁x₀) andfrom the trellis metric M_(t)(c₄c₃c₂c₁c₀) to M_(s)(abc) need to beintroduced.

As an example, the transformation of the follow RCs are shown below.

For RC 0: the received metric M_(r)(x₂x₁x₀) is mapped to an intermediatemetric M_(s)(c₃c₂c₁). This intermediate metric M_(s)(c₃c₂c₁) is mappedto the trellis metric M_(t)(c₄c₃c₂c₁c₀). The last three bits of theintermediate metric M_(s)(c₃c₂c₁) are mapped to the four possibletrellis metrics M_(t)(c₄c₃c₂c₁c₀) where the bits and may be treated asdon't care. For example, the four metrics M_(t)(0c₃c₂c₁0),M_(t)(0c₃c₂c₁1), M_(t)(1c₃c₂c₁0), and M_(t)(1c₃c₂c₁1) are all mapped tohave the very same value for the metrics within the trellis 2300.

These operations may be described below as follows:M _(s)(x ₂ x ₁ x ₀)=M _(r)(x ₂ x ₁ x ₀)M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₃ c ₂ c ₁)

For RC 1: the received metric M_(r)(ux₁x₀) that includes an uncoded bitis initially mapped using a min* operation to generate the followingintermediate received metric M_(r)(x₁x₀)=min*{M_(r)(0x₁x₀),M_(r)(1x₁x₀)}. The uncoded bit is dealtwith via the min* operation to deal with the both of the possible valuesby which u may take.

These operations may be described below as follows:M _(r)(x ₁ x ₀)=min*{M _(r)(0x ₁ x ₀),M _(r)(1x ₁ x ₀)}M _(s)(x ₂ x ₁0)=M _(s)(x ₂ x ₁1)= M _(r)(x ₂ x ₁)M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₄ c ₃ c ₂)

Now, each of the following metrics would all be assigned the same valueaccording to the trellis.M_(t)(c₄c₃c₂00)=M_(t)(c₄c₃c₂01)=M_(t)(c₄c₃c₂10)=M_(t)(c₄c₃c₂11)

The possible value of the uncoded bit indexed by (x₁x₀) will be 0 ifM_(r)(0x₁x₀)<M_(r)(1x₁x₀), otherwise the possible value of the uncodedbit indexed by (x₁x₀) will be 1 if M_(r)(0x₁x₀)≧M_(r)(1x₁x₀).

For RCs 2,3,6,C&E: for the received metric M_(r)(x₂x₁), the followingtransformations are performed.M _(s)(x ₂ x ₁0)=M _(s)(x ₂ x ₁1)=M _(r)(x ₂ x ₁)M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₄ c ₃ c ₂)

Now, each of the following metrics would all be assigned the same valueaccording to the trellis.M_(t)(c₄c₃c₂00)=M_(t)(c₄c₃c₂01)=M_(t)(c₄c₃c₂10)=M_(t)(c₄c₃c₂11)

For RCs 4&B: for the received metric M_(r)(ux₂x₁x₀) that includes anuncoded bit, the min* operation is again employed. The followingtransformations are performed.M _(s)(x ₂ x ₁ x ₀)=min*{M _(r)(0x ₂ x ₁ x ₀),M _(r)(1x ₂ x ₁ x ₀)}M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₃ c ₂ c ₁)

Now, each of the following metrics would all be assigned the same valueaccording to the trellis.M_(t)(0c₃c₂c₁0),=M_(t)(0c₃c₂c₁1)=M_(t)(1c₃c₂c₁0)=M_(t)(1c₃c₂c₁1)

The possible value of the uncoded bit indexed by (x₂x₁x₀) will be 0 ifM_(r)(0x₂x₁x₀)<M_(r)(1x₂x₁x₀), otherwise the possible value of theuncoded bit indexed by (x₂x₁x₀) will be 1 ifM_(r)(0x₂x₁x₀)≧M_(r)(1x₂x₁x₀).

For RCs 7,A&D: for the received metric M_(r)(x₁x₀), the followingtransformations are performed.M _(s)(x ₂ x ₁ x ₀)=M _(r)(x ₁ x ₀), when x ₂=0

M_(s)(₂x₁x₀)=MAX, when x₂=1. MAX is the maximum metric that is employedin the decoding system.M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₄ c ₂ c ₁)

Now, each of the following metrics would all be assigned the same valueaccording to the trellis.M_(t)(c₄0c₂c₁0)=M_(t)(c₄0c₂c₁1)=M_(t)(c₄1c₂c₁0)=M_(t)(c₄1c₂c₁1)

For RC 9: for the received metric M_(r)(x₂x₁x₀), the followingtransformations are performed.M _(s)(x ₂ x ₁ x ₀)=M _(r)(x ₂ x ₁ x ₀)M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₂ c ₁ c ₀), when c ₄=0.M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=MAX, when c ₄=1.

For RC 5: for the received metric M_(r)(ux₂x₁x₀) that includes anuncoded bit, the min* operation is again employed. The followingtransformations are performed.M _(s)(x ₂ x ₁ x ₀)=min*{M _(r)(0x ₂ x ₁ x ₀),M _(r)(1x ₂ x ₁ x ₀)}M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₂ c ₁ c ₀), when c ₄=0.M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=MAX, when c ₄−1.

The possible value of the uncoded bit indexed by (x₂x₁x₀) will be 0 ifM_(r)(0x₂x₁x₀)<M_(r)(1x₂x₁x₀), otherwise the possible value of theuncoded bit indexed by (x₂x₁x₀) will be 1 ifM_(r)(0x₂x₁x₀)≧M_(r)(1x₂x₁x₀).

For RC 8: for the received metric M_(r)(x₁x₀), the followingtransformations are performed.M _(s)(x ₂ x ₁ x ₀)=M _(r)(x ₁ x ₀), when x ₂=0

M_(s)(x₂x₁x₀)=MAX, when x₂=1. MAX is the maximum metric that is employedin the decoding system.M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=M _(s)(c ₃ c ₂ c ₀), when c ₄=0.M _(t)(c ₄ c ₃ c ₂ c ₁ c ₀)=MAX, when c ₄=1.

For even greater understanding of the mapping of these metric functionsto the trellis 2300 employed by the rate 2/5 prototype encoder 2000, wewill walk through the following example. We use the outputs of thetrellis 2300 to perform this assigning of the metrics. The followingtable is used to show how this mapping to the trellis is performedaccording to RC 8. state output output output output 0 = 000 0 14 31 25x00000 octal x01100 octal x11001 octal x10101 octal Met(0) Met(6) Met(5)Met(7) MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 1 =001 31 25 0 14 x11001 octal x10101 octal x00000 octal x01100 octalMet(5) Met(7) Met(0) Met(6) MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 MAX:as x₂ = c₄ = 1 2 = 010 12 6 23 37 x01010 octal x00110 octal x10011 octalx11111 octal Met(4) Met(2) Met(5) Met(7) MAX: as x₂ = c₄ = 1 MAX: as x₂= c₄ = 1 MAX: as x₂ = c₄ = 1 3 = 011 23 37 12 6 x10011 octal x11111octal x01010 octal x00110 octal Met(5) Met(7) Met(4) Met(2) MAX: as x₂ =c₄ = 1 MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 4 −100 24 30 15 1 x10100octal x11000 octal x01101 octal x00001 octal Met(6) Met(4) Met(7) Met(1)MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 5 = 101 15 124 30 x01101 octal x00001 octal x10100 octal x11000 octal Met(7) Met(1)Met(6) Met(4) MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ =1 6 = 110 36 22 7 13 x11110 octal x10010 octal x00111 octal x01011 octalMet(6) Met(4) Met(3) Met(5) MAX: as x₂ = c₄ = 1 MAX: as x₂ = c₄ = 1 MAX:as x₂ = c₄ = 1 7 = 111 7 13 36 22 x00111 octal x01011 octal x11110 octalx10010 octal Met(3) Met(5) Met(6) Met(4) MAX: as x₂ = c₄ = 1 MAX: as x₂= c₄ = 1 MAX: as x₂ = c₄ = 1

It is seen in this example that there are only 4 distinct valued metricsthat need to be provided from the metric generator to a SISO in the RC8. MAX (the maximum metric value) is used to define the “leastlikelihood probability.” A great deal of memory may be saved by passingonly a flag bit (for those metrics who will use the MAX value) thatindicates such information to the SISO.

It is also noted that for the states 0=000 and 1=001, the metrics areall the same values only swapped. This is the case also for the stategroupings {2=010, 3=011}, {4=100, 5=101}, and {6=110, 7=111}. Suchefficiency may be similarly achieved with respect to each of the RCs,and efficient hardware implementations may capitalize thereon to providefor savings.

FIG. 44 is a diagram illustrating an embodiment of SISO calculations andoperations that are performed according to the invention. For each stage(or each symbol) within a frame of received symbols (or sequence ofreceived symbols), the forward metrics (alphas), the backward metrics(betas), and the extrinsics are calculated. The extrinsics value of astage is a function of the alphas, betas, metrics, and apps (“a priori”probabilities) of that stage. The metrics (that have been mappedaccording to the trellis and according to the rate control sequence fromthe metric generator 3733 and as also described in greater detail abovewithin the discussion of the FIG. 43) are provided to the SISO withinthe FIG. 44. The SISO employs these metrics to calculate the alphas, andthe betas. Then, the alphas, betas, and metrics are used to calculatethe extrinsics that are provided back to the other SISO through theother interleaver/de-interleaver as appropriate in the particularsituation. It is noted that the values of metrics, alphas, betas, andextrinsics are all used to perform the TTCM decoding of the informationbits that have been encoded by the TTCM encoder.

For even greater understanding of the calculation of these variablesaccording to the trellis 2300 that is employed by the rate 2/5 prototypeencoder 2000, we show the following steps of calculations. It is notedthat this is one particular example of how these variables may becalculated, and other means are also envisioned within the scope andspirit of the invention that supports the variable code ratefunctionality described herein.

As mentioned above, the trellis 2300 may be represented using 8 distinctmetric values in an efficient implementation. Therefore, for each stage(or symbol) of a received frame of symbols (I,Qs), we will have 8different metrics, 8 different alphas, and 8 different betas. As alsomentioned above, some savings may be achieved when more than one of themetrics has the same value according to the coding and the trellis 2300.Similar savings may also be achieved within other trellises thatinherently support such redundancy.

We use the trellis to calculate the values for alpha. In this particularembodiment, a value of 0 is associated with a high likelihood and avalue of N is associated with a value of less likelihood. However, ifdesired in a particular embodiment, the association may be reversedwithout departing from the scope and spirit of the invention.

When calculating the 8 alphas for the first symbol of the trellis 2300,we initially set the values to be as follows:

α₀(0)=0; the value of 0 is assigned to be a high likelihood, and we setthe other alphas to be the value of N, associated with the lesslikelihood.α₂(0)=α₃(0)=α₄(0)=α₅(0)=α₆(0)=α₇(0)=N

We will show the manner in which we calculate the alphas for a firstreceived symbol within a frame.

The alpha associated with the state 0 may be calculated as follows:α_(n)(0)=min*{A ₀ , A ₁ , A ₂ , A ₃}

where,A ₀=α_(n−1)(0)+Met(0)+app(i ₁=0)+app(i ₀=0), input 0=00, output=0=x00000A ₁=α_(n−1)(1)+Met(14)+app(i ₁=0)+app(i ₀=1), input 1=01,output=14=x01100A ₂=α_(n−1)(2)+Met(31)+app(i ₁=1)+app(i ₀=0), input 2=10,output=31=x11001A ₃=α_(n−1)(3)+Met(25)+app(i ₁=1)+app(i ₀=1), input 3=11,output=25=x10101

Similarly, the alpha associated with the state 1 may be calculated asfollows:α_(n)(1)=min*{AA ₀ , AA ₁ , AA ₂ , AA ₃}

where,AA ₀=α_(n−1)(2)+Met(31)+app(i ₁=1)+app(i ₀=0), input 2=10,output=31=x11001AA ₁=α_(n−1)(3)+Met(25)+app(i ₁=1)+app(i ₀=1), input 3=11,output=25=x10101AA ₂=α_(n−1)(0)+Met(0)+app(i ₁=0)+app(i ₀=0), input 0=00,output=00=x00000AA ₃=α_(n−1)(1)+Met(14)+app(i ₁=0)+app(i ₀=1), input 1=01,output=14=x01100

This process will continue until all of the alphas are calculated forthe symbol. The beta values are calculated in the backwards direction ina similar manner according to the same trellis. The same min* design,replicated many times in hardware, may be employed to performsimultaneous calculation of both the alphas and the betas. However, inslower data rate applications where throughput is not such a highpriority, the same min* hardware element may be used to perform thealpha and beta calculations sequentially.

Once that the alphas and betas have been calculated at any stage, we canproceed to calculate for the extrinsic values so that we may decode theinput bits of the input symbol, namely the two input bits (i₀i₁), forthat stage.

The following table may be used to illustrate how we calculate thesevalues according to the trellis 2300 that is employed by the rate 2/5prototype encoder 2000. In this embodiment, since we have two input bits(i₀i₁), we need to calculate the extrinsic values for the possibilitythat each of the bits within the symbol may be 0 or may be 1. We will dothis by calculating the following extrinsic values: ext(00), ext(01),ext(10), and ext(11).

The following table is used to show the 4 extrinsics that we need tocalculate to perform proper decoding of the input symbol having the twoinput bits (i₀i₁). possible two input Extrinsic value bit of concernbits [symbol = (i₀i₁)] ext(00) = ext(i₀ = 0) bit i₀ = 0 0 = 00 or 2 = 10ext(10) = ext(i_(i) = 1) bit i₀ = 1 1 = 01 or 3 = 11 ext(01) = ext(i₁ =0) bit i₁ = 0 0 = 00 or 1 = 01 ext(11) = ext(i₁ = 1) bit i₁ = 1 2 = 10or 3 = 11

In this embodiment, we perform a min* calculation to calculate our fourextrinsic values. It is noted, however, that other embodiments mayperform a min only calculation, a max only calculation, or a max*calculation without departing from the scope and spirit of theinvention. The variable code rate functionality of using multiplemodulations (constellations and mappings), and cycling through ratecontrol sequences thereof may still be performed when using other suchfunctions to calculate the extrinsic values within the SISO functionalblocks.

We perform the min* operation on a host of values to calculate thesevarious extrinsic values.

First, we look at all branches within the trellis where (i₀=0), and wefind that we get 16 branches. We do a min* operation across thosebranches to calculate this the extrinsic value. ext(00)=ext(i₀=0)=min*{[beta_0+alpha_0+a [beta_0+alpha_1+a priori(01)+met(0)];priori(11)+met(31)]; [beta_1+alpha_6+a [beta_1+alpha_7+apriori(11)+met(36)]; priori(01)+met(7)]; [beta_2+alpha_4+a[beta_2+alpha_5+a priori(11)+met(30)]; priori(11)+met(1)];[beta_3+alpha_2+a [beta_3+alpha_3+a priori(01)+met(6)];priori(01)+met(37)]; [beta_4+alpha_0+a [beta_4+alpha_1+apriori(11)+met(31)]; priori(11)+met(0)]; [beta_5+alpha_6+a[beta_5+alpha_7+a priori(01)+met(7)]; priori(01)+met(36)];[beta_6+alpha_4+a [beta_6+alpha_5+a priori(01)+met(1)];priori(11)+met(30)]; [beta_7+alpha_2+a [beta_7+alpha_3+apriori(11)+met(37)]; priori(01)+met(6)]}

Second, we now look at all branches within the trellis where (i₀=1), andwe find that we also get 16 branches. We do a min* operation acrossthose branches to calculate this the extrinsic value.ext(10)=ext(i₀=1)=min*{ [beta_0+alpha_4+a [beta_0+alpha_5+apriori(11)+met(24)]; priori(01)+met(15)]; [beta_1+alpha_2+a[beta_1+alpha_3+a priori(01)+met(12)]; priori(11)+met(23)];[beta_2+alpha_0+a [beta_2+alpha_1+a priori(01)+met(14)];priori(01)+met(25)]; [beta_3+alpha_6+a [beta_3+alpha_7+apriori(11)+met(22)]; priori(01)+met(13)]; [beta_4+alpha_4+a[beta_4+alpha_5+a priori(01)+met(15)]; priori(11)+met(24)];[beta_5+alpha_2+a [beta_5+alpha_3+a priori(11)+met(23)];priori(01)+met(12)]; [beta_6+alpha_0+a [beta_6+alpha_1+apriori(11)+met(25)]; priori(01)+met(14)]; [beta_7+alpha_6+a[beta_7+alpha_7+a priori(01)+met(13)]; priori(11)+met(22)]}

We may use these two extrinsic values calculated above to decode for thefirst bit of the input symbol that was encoded, namely i₀. We use thefollowing equation to do the final decode for i₀.i ₀ =sgn{−[ext(i ₀=0)+app(i ₀=0)]+[ext(i ₀=1)+app(i=1)]}

Functionally, we select the smaller one of [ext(i₀=0)+app(i₀=0)] and[ext(i₀=1)+app(i₀=1)] in the above equation, and we select the bit valueassociated with the smaller sum. For example, if[ext(i₀=0)+app(i₀=0)]<[ext(i₀=1)+app(i₀=1)], then we make i₀=0.

We perform similar operations to calculate for the bit value for i₁within the input symbol.

Third, we look at all branches within the trellis where (i₁=0), and wefind that we get 16 branches. We do a min* operation across thosebranches to calculate this the extrinsic value. ext(01)=ext(i₁=0)=min*{[beta_0+alpha_0+a [beta_0+alpha_5+a priori(00)+met(0)];priori(10)+met(15)]; [beta_1+alpha_2+a [beta_1+alpha_7+apriori(10)+met(12)]; priori(00)+met(7)]; [beta_2+alpha_0+a[beta_2+alpha_5+a priori(10)+met(14)]; priori(00)+met(1)];[beta_3+alpha_2+a [beta_3+alpha_7+a priori(00)+met(6)];priori(10)+met(13)]; [beta_4+alpha_1+a [beta_4+alpha_4+apriori(00)+met(0)]; priori(10)+met(15)]; [beta_5+alpha_3+a[beta_5+alpha_6+a priori(10)+met(12)]; priori(00)+met(7)];[beta_6+alpha_1+a [beta_6+alpha_4+a priori(10)+met(15)];priori(00)+met(1)]; [beta_7+alpha_3+a [beta_7+alpha_6+apriori(00)+met(6)]; priori(10)+met(13)]}

Fourth, we now look at all branches within the trellis where (i₁=1), andwe find that we also get 16 branches. We do a min* operation acrossthose branches to calculate this the extrinsic value.ext(11)=ext(i₁=1)=min*{ [beta_0+alpha_1+a [beta_0+alpha_4+apriori(00)+met(31)]; priori(10)+met(24)]; [beta_1+alpha_3+a[beta_1+alpha_6+a priori(10)+met(23)]; priori(00)+met(36)];[beta_2+alpha_1+a [beta_2+alpha_4+a priori(10)+met(25)];priori(00)+met(30)]; [beta_3+alpha_3+a [beta_3+alpha_6+apriori(00)+met(37)]; priori(10)+met(22)]; [beta_4+alpha_0+a[beta_4+alpha_5+a priori(00)+met(31)]; priori(10)+met(24)];[beta_5+alpha_2+a [beta_5+alpha_7+a priori(10)+met(23)];priori(00)+met(36)]; [beta_6+alpha_0+a [beta_6+alpha_5+apriori(10)+met(25)]; priori(00)+met(30)]; [beta_7+alpha_2+a[beta_7+alpha_7+a priori(00)+met(37)]; priori(10)+met(22)]}

We may use these two extrinsic values calculated above to decode for thefirst bit of the input symbol that was encoded, namely i₀. We use thefollowing equation to do the final decode for i₀.i ₁ =sgn{[ext(i ₁=1)+app(i ₁=1)]−[ext(i ₁=0)+app(i ₁=0)]}

Functionally, we select the smaller one of [ext(i₁=0)+app(i₁=0)] and[ext(i₁=1)+app(i₁=1)] in the above equation, and we select the bit valueassociated with the smaller sum. For example, if[ext(i₁=0)+app(i₁=0)]<[ext(i₁=1)+app(i₁=1)], then we make i₁=0.

Now we have decoder the individual bits for the input symbol, (i₀i₁), asbeing one of either 0=01, 1=01, 2=10, or 3=11.

In addition, we need to perform a little additional computation in thesituation where we have a RC that includes an uncoded bit.

We continue on to use the RC 5 to illustrate this situation. The otherRCs would undergo analogous calculations to determine the final value ofthe uncoded bit. The puncturing for the RC 5 may be seen in the FIG. 26,and its mapping may be seen in the FIG. 36. We use the earlier extrinsiccalculated information to decode the uncoded bit for RC 5, whosepunctured output takes the form of uc₂c₁c₀. We can narrow our inputselection somewhat to have the form of only one of two input symbols, 0and 1, or 0=(i₀i₁=00) and 1=(i₀i₁=01), because we know that this RC 5always provides the bit i₀ as value 0. Therefore, we need only to decodethe other input bit i₁ within this RC 5. The following table is employedto generate the indexing of the uncoded bit so that, after we havedecoded the input bits, i₀i₁, we will be able to decode the uncoded bitu properly. Trellis output input c₄c₃c₂c₁c_(o) min* operation symbol(octal) c₂c₁c_(o) (metric indexed by c₂c₁c_(o)) 0 0 0 min*{[alpha_0 +beta_0 + met(0)]; (i₀i₁ = 00) [alpha_1 + beta_4 + met(0)]} 0 1 1min*{[alpha_4 + beta_6 + met(1)]; (i₀i₁ = 00) [alpha_5 + beta_2 +met(1)]} 0 6 6 min*{[alpha_2 + beta_3 + met(6)]; (i₀i₁ = 00) [alpha_3 +beta_7 + met(6)]} 0 7 7 min*{[alpha_6 + beta_5 + met(7)]; (i₀i₁ = 00)[alpha_7 + beta_1 + met(7)]} 1 12 2 min*{[alpha_2 + beta_1 + met(2)];(i₀i₁ = 01) [alpha_3 + beta_5 + met(2)]} 1 13 3 min*{[alpha_6 + beta_7 +met(3)]; (i₁i₁ = 01) [alpha_7 + beta_3 + met(3)]} 1 14 4 min*{[alpha_0 +beta_2 + met(4)]; (i₀i₁ = 01) [alpha_1 + beta_6 + met(4)]} 1 15 5min*{[alpha_4 + beta_4 + met(5)]; (i₀i₁ = 01) [alpha_5 + beta_0 +met(5)]}

From the decoder input, such as input bit symbol 0, (i₀i₁=00), we thendetermine which one of the four min* results above is the smallest. Thisis then the index that we use to select the one of the possible 8 valuesfor the uncoded bit. As an example, if the min* of the metric for 6 {themin* calculation associated with met(6)} is the smallest, then we willuse this index to select the value of the uncoded bit u from thepreviously stored values.

FIG. 45 is a diagram illustrating an embodiment of alpha, beta, andextrinsic calculation, based on a trellis 2300 of a rate 2/5non-systematic prototype encoder 2000, that is performed according tothe invention. The FIG. 45 shows how the trellis 2300 may be effectivelyoverlaid at each symbol location within a frame of received symbols andhow this particular trellis 2300 inherently provides an efficiency, inthat, regardless of the RC that is being employed in a given instance,the received metrics associated with that RC may be mapped into the sametrellis 2300 and reduced to a maximum of 8 trellis metrics in certainembodiments as opposed to storing all 16 metric values for each of thepossible branches of the trellis 2300. This is performed usingnormalization and saturation in order to reduce the total number oftrellis metrics that need to be stored; by reducing the required memorystorage from 16 down to 8, a memory savings of a factor of 2 isachieved. Similarly, normalization and saturation is performed in orderto reduce the total number of extrinsic values that need to be storedfor each input bit that is encoded. In prior art systems, there would bea need for 4 extrinsic values per information bit thereby requiring 8extrinsic values for this embodiment which has 2 input bits (4 extrinsicvalues each for the 2 bits). However, the invention is able to reducethe total number of extrinsic values that need to be stored to only 2per bit thereby achieving a memory savings by a factor of 2. Thereceived metrics are calculated for each symbol, these metrics aretransformed into trellis metrics, and the alphas, betas, and extrinsicsare all calculated for each symbol according to the invention. Again, itis noted that the trellis 2300 shows one embodiment of how the inventionmay be implemented. The invention envisions other trellises that alsomay be implemented to support the variable code rate functionality aswell.

FIG. 46 is a diagram illustrating an embodiment of final output ofdecoding that is performed according to the invention. In the situationwhere there may be only one SISO, then the odd symbol should be takenbefore de-interleave and the even symbol should be taken afterde-interleave.

In a similar manner to the ordering in which the encoding may beperformed (as described within the embodiment of the FIG. 13, forexample), the order of the input symbols should be preserved upondecoding. The final output of decoding ensures the following: when weinput a symbol sequence, S₁S₂S₃S₄, to the encoder, and then when thefollowing encoded symbols (S_(1-enc)S_(2-enc)S_(3-enc)S_(4-enc)) arereceived by the decoder, then the decoded estimates of these receivedsymbols will maintain this sequential order. A MUX whose selection isprovided by a clock signal that is clocked at 1/2 the rate willalternatively select the outputs from the output and input of thede-interleaver that is communicatively coupled to the lower SISO. ThisMUX in the FIG. 46 may be viewed as being within the output processor3730 within either of the FIG. 38 or 39. The FIG. 46 shows an embodimentof how this may be performed in the final decoding step.

FIG. 47 is a diagram illustrating an embodiment of a variable code ratecodec (encoder/decoder) servicing channels of various SNRs according tothe invention. A variable code rate encoder is operable totransit/broadcast simultaneously to multiple variable code ratedecoders. When the communication channel that communicatively couples toone of the variable code rate decoders is of a low SNR, then the lowercode rates may be employed when coding data for use by the variable coderate decoder. Analogously, when the communication channel thatcommunicatively couples to one of the variable code rate decoders is ofa high SNR, then the higher code rates may be employed when coding datafor use by the variable code rate decoder. In addition, either one orboth of the encoder and the decoder employed may adaptively change therate control sequence, in real-time, based on the operating conditionsof the communication channel; after there has been a change to a newrate control sequence, then both the encoder and the decoder will nowoperate at that new rate control sequence.

The rate control sequence to be employed when encoding and subsequentlydecoding information may be selected based on the given bandwidth of acommunication channel. The rate control sequence is then selected, basedon the bandwidth of the communication channel, as including the RCs thatprovide for the best performance (such as the grouping of RCs thatprovides for the lowest Bit Error Rate (BER)). This selection of whichrate control sequence to employ may also be performed based on theapplication that is being used. For example, in some data applications,a slight latency in the delivery of information may sometimes betolerated. However, in other applications, such as video or Voice overInternet Protocol (VOIP) applications, the latency will degrade theperformance significantly. The inclusion of such parameters may beemployed when selecting which RCs to be employed within a given ratecontrol sequence.

Generally speaking, as the noise of the channel increases, the codingmay select a new code rate as provided by a new rate control sequence.This new code rate (when channel noise increases) may employ employs RCswith constellations of lower order (having a fewer number ofconstellation points) and/or operate at lower bandwidth efficiencies(fewer information bits per symbol). Similarly, as the noise of thechannel decreases, the coding may select a new rate control sequence.This new code rate (when channel noise decreases) may employ employs RCswith constellations of higher order (having a larger number ofconstellation points) and/or operate at higher bandwidth efficiencies(more information bits per symbol).

This variable code rate functionality, including the adaptivefunctionality thereof, may be implemented in a variety of contexts toprovide for overall improvement in the communication system. Oneembodiment may include varying the rates to accommodate the differentSNR regions within wireless transmission from a satellite to subscriberson the earth. A direct path from the satellite may be viewed asgenerating a beam spot that would likely have a SNR that is higher thanthe evanescent regions of the wireless transmission where the field willfall off. The variable code rate functionality, according to theinvention, may be used to support different rates to these variousregions. In such an implementation, a maximal throughput may be achievedby tailoring the code rate to the communication to a particular receiverbased on the highest SNR that the channel to that receiver may support.

Moreover, the invention envisions modifying the code rate based onchanges to the SNR of the channel as well; the device at either end ofthe communication channel may perform the measurement of thecommunication system's operating conditions including the SNR of variousportions of the channel. This is also described above wherein either oneor both of the transmitter and the receiver may be employed to monitorsuch parameters and to change the rate control sequence to be employedbased on these parameters. Both the encoder and decoder then will moveto the new rate control sequence synchronously to ensure propercommunication of information.

FIG. 48 is an operational flow diagram illustrating an embodiment of aTTCM variable code rate coding method 4800 that is performed accordingto the invention. As shown in a block 4810, a RC is selected. Thisselection may be based on a communication system's operating conditionsas shown in the optional block 4812. Moreover, the selection of the RCmay specifically be made based on the communication channel's SNR, asshown in an optional block 4814.

Afterwards, once one or more RCs has/have been selected, then theinformation bits are encoded using a single TTCM encoder as shown in ablock 4820. These information bits are implemented as symbols within thenon-systematic rate 2/5 2000 that is used throughout this document as anexemplary embodiment; however, in other embodiments, a single bit mayalso be encoded using the single TTCM encoder shown in the block 4820.These encoded symbols (or bit) are provided for decoding.

In a block 4840, the received symbols are decoded using the same singleTTCM decoder according to the same RC in which the information bits wereencoded. A single TTCM encoder and a single TTCM decoder that performthe method of the FIG. 48 will both employ the same trellis whenperforming the coding/decoding according to the RC.

In alternative embodiments, it is noted that the method may cyclethrough a predetermined rate control sequence consisting of various RCs,as shown in an optional block 4850. Each RC within the rate controlsequence may be viewed as having a unique constellation (block 4852);each RC may have an individual bandwidth efficiency (block 4854);multiple RCs may operate cooperatively to provide for an averagebandwidth efficiency (block 4856); and a predetermined rate controlsequence may have a particular period (block 4858) that may be repeatedseveral times within a data frame. This cycling through thepredetermined rate control sequence as shown in the optional block 4850is performed after the decoding in the block 4840 and beforesubsequently repeating encoding in the block 4820 according to theappropriate RC as defined by the rate control sequence.

It is also noted that the method may employ adaptive selection of a newRC based on the communication system's operating conditions as shown inan optional block 4860. Moreover, the selection of the new RC mayspecifically be made based on the communication channel's SNR, as shownin an optional block 4864.

FIG. 49 is an operational flow diagram illustrating an embodiment of aTTCM variable code rate encoding method 4900 that is performed accordingto the invention. In a block 4910, a RC is selected. Thereafter,information bits (that may be viewed as a symbol) are encoded using asingle encoder as shown in a block 4920. None, one, or more of theencoded bits are then punctured as shown in a block 4930; thispuncturing is performed according to the selected RC.

Based on the RC, a constellation is selected in a block 4940. Now, theremaining bits, after the puncturing is performed, are mapped to asymbol for the selected constellation as shown in a block 4950. Thissymbol is then modulated, according to the selected modulation (having aconstellation and mapping) as determined by the RC as shown in a block4960.

FIG. 50 is an operational flow diagram illustrating an embodiment of aTTCM variable code rate decoding method 5000 that is performed accordingto the invention. In a block 5010, a RC is selected. The symbol isreceived in a block 5020. Metrics are then calculated according to theinvention for the received symbol as shown in a block 5030. This symbolis then decoded according to the appropriate modulation (constellationand mapping) using a single decoder as shown in a block 5040.

FIG. 51 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate encoding method 5100 that is performedaccording to the invention. In a block 5112, information bits areprovided to a first interleaver and to a first constituent trellisencoder (CTE). Simultaneously, those same information bits are providedto a second interleaver and to a second CTE. After these informationbits have been encoded and interleaved using the first interleaver andCTE and the second interleaver and the second CTE, the output from eachof these blocks 5112 and 5114 are alternatively selected as shown in ablock 5120. A RC is determined as shown in a block 5130.

Thereafter, based on the RC, none, one or more selected bits arepunctured from the now combined output of the first interleaver and CTEand the second interleaver and the second CTE as shown in a block 5140.These remaining bits then form a symbol, and this symbol is mapped intoa particular modulation's constellation and mapping (as governed by theRC) as shown in a block 5150. This encoding may be performed multipletimes to generate a number symbols corresponding to one or more RCs.These symbols are then sent out according to a rate control sequencethat is made of one or more RCs as shown in a block 5160.

FIG. 52 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate decoding method 5200 that is performedaccording to the invention. As shown in a block 5210, the I,Q portionsof a received signal are received. A RC is determined in a block 5220.Output metric are calculated based on the I,Q of the received symbol andits mapping as shown in a block 5240.

Afterwards, soft symbol decisions are generated using these outputmetrics (within a SISO) according to the RC as shown in a block 5250.After these soft decisions have been made, then hard symbol decisionsare made based on the soft symbol decisions according to the RC as shownin a block 5260.

FIG. 53 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate coding method 5300 that is performedaccording to the invention. A first frame is encoded using a first ratecontrol sequence (RC Seq 1) as shown in a block 5310. A second frame isencoded using a second rate control sequence (RC Sequence 2) as shown ina block 5320. The operations within the blocks 5310 and 5320 may beperformed within a single encoder in certain embodiments.

The first frame is decoded using the RC Seq 1 in a block 5340. Thesecond frame is decoded using the RC Seq 2 in a block 5350. Each of theoperations within the blocks 5340 and 5350 may be performed withinseparate decoders (a decoder #1 and a decoder #2) in certain embodimentsor they may be performed within a single decoder in other embodiments.

It is also noted that the encoding within the blocks 5310 and 5320 andthe decoding within the blocks 5340 and 5350 all employ the same trellisaccording to TTCM encoding/decoding.

FIG. 54 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate coding method 5400 that is performedaccording to the invention. A frame is encoded using first rate controlsequence (RC Seq 1) as shown in a block 5410. The same frame is alsoencoded using a second rate control sequence (RC Seq 1) as shown in ablock 5420. The operations within the blocks 5410 and 5420 may beperformed within a single encoder in certain embodiments.

The resultant frame that was encoded using the RC Seq 1 is then decodedusing the RC Seq 1 in a block 5440. The resultant frame that was encodedusing the RC Seq 2 is decoded using the RC Seq 2 in a block 5450. Eachof the operations within the blocks 5440 and 5450 may be performedwithin separate decoders (a decoder #1 and a decoder #2) in certainembodiments or they may be performed within a single decoder in otherembodiments.

It is also noted that the encoding within the blocks 5410 and 5420 andthe decoding within the blocks 5440 and 5450 all employ the same trellisaccording to TTCM encoding/decoding.

FIG. 55 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate coding method 5500 that is performedaccording to the invention. An individual symbol is encoded using afirst rate control (RC 1) as shown in a block 5510. A second individualsymbol is then encoded using a second rate control (RC 2) as shown in ablock 5520. The operations within the blocks 5510 and 5420 may beperformed within a single encoder in certain embodiments.

These resultant encoded symbols, that were encoded using the RC 1 andthe RC 2 as shown in the blocks 5510 and 5520, are then decoded usingthe RC 1 and the RC 2 as shown in blocks 5530 and 5540, respectively.Each of the operations within the blocks 5540 and 5550 may be performedwithin a single decoder in certain embodiments. Alternatively, theseoperations within the blocks 5540 and 5550 may be performed withinseparate decoder in other embodiments.

It is also noted that the encoding within the blocks 5510 and 5520 andthe decoding within the blocks 5540 and 5550 all employ the same trellisaccording to TTCM encoding/decoding.

It is noted here that the RCs (RC 1 and RC 2) that are employed toperform the encoding of the symbols govern the code rate and modulation(constellation and mapping) that correspond to these symbols. That is tosay, the code rate may vary on a symbol by symbol basis. In addition,the modulation (either one or both of the constellation and mapping) mayalso vary on a symbol by symbol basis.

FIG. 56 is an operational flow diagram illustrating another embodimentof a TTCM variable code rate encoding method 5600 that is performedaccording to the invention. As shown in a block 5610, input informationis encoded thereby generating a number of encoded bits. This encodingmay also include puncturing that is performed according to theinvention. Afterwards, as shown in a block 5620, these encoded bits arethen grouped into two or more sub-groups (shown here as a sub-group 1and a sub-group 2).

As shown in a block 5630, the bits of one of the sub-groups (sub-group1) are used as a first encoded symbol (encoded symbol 1). This encodedsymbol 1 is then mapped using a modulation 1 having its uniqueconstellation and mapping. Similarly, as shown in a block 5640, the bitsof another of the sub-groups (sub-group 1) are used as a second encodedsymbol (encoded symbol 2). This encoded symbol 2 is then mapped using amodulation 2 having its unique constellation and mapping.

In alternative embodiment, as shown in a block 5645, the bits of thesub-group 1 are used as a second encoded symbol (encoded symbol 2).Then, this encoded symbol 2 is then mapped using the same modulation 1,having its unique constellation and mapping, as is used for the encodedsymbol 1. This embodiment corresponds to the situation where the numberof bits for the sub-group 1 and the sub-group 2 have the same number ofbits.

Many benefits are provided by the various aspects of the invention. Itwill now be understood that the variable code rate functionality of theinvention described herein will provide for significantly extending theart of coding to higher order constellations and achieving higher ratesof communication thereby enabling much greater throughput than has yetbeen achieved within turbo coding systems.

In addition, it is also noted that the various aspects of the inventionare extendible to any Trellis Coded Modulation (TCM) communicationsystems, and not only those that employ Turbo Trellis Coded Modulation.For example, other trellis types of coded may also benefit from theinvention to achieve the many benefits described herein, includingvariable code rate.

In view of the above detailed description of the invention andassociated drawings, other modifications and variations will now becomeapparent. It should also be apparent that such other modifications andvariations may be effected without departing from the spirit and scopeof the invention.

1. An apparatus, comprising: an input that is operable to receive asignal from a communication channel, wherein: the signal includes afirst symbol, that includes a first plurality of bits, that has beensymbol mapped to a first modulation; and the signal includes a secondsymbol, that includes a second plurality of bits, that has been symbolmapped to a second modulation; a metric generator that is operable to:for the first symbol, calculate a first plurality of metrics that isindexed by a first symbol mapping of constellation points within thefirst modulation; for the second symbol, calculate a second plurality ofmetrics that is indexed by a second symbol mapping of constellationpoints within the second modulation; transform the first plurality ofmetrics to a first plurality of trellis metrics, wherein the firstplurality of trellis metrics is a first subset of a total plurality oftrellis metrics that corresponds to a plurality of possible branchtransitions within a trellis; and transform the second plurality ofmetrics to a second plurality of trellis metrics, wherein the secondplurality of trellis metrics is a second subset of the total pluralityof trellis metrics; and a decoder that is operable to: employ the firstplurality of trellis metrics during decoding processing to make a firstbest estimate of the first plurality of bits within the first symbol;and employ the second plurality of trellis metrics during decodingprocessing to make a second best estimate of the second plurality ofbits within the second symbol.
 2. The apparatus of claim 1, wherein: thefirst symbol also includes an uncoded bit.
 3. The apparatus of claim 1,wherein: the second plurality of trellis metrics is also a subset of thefirst plurality of trellis metrics.
 4. The apparatus of claim 1,wherein: at least two metrics within the first plurality of metrics orthe second plurality of trellis metrics are assigned to a single trellismetric value within the total plurality of trellis metrics.
 5. Theapparatus of claim 1, further comprising: a first memory, having a firstsize, that is operable to store the total plurality of trellis metrics;and wherein: a second memory being operable to store the first pluralityof trellis metrics would require at least a second size; a third memorybeing operable to store the second plurality of trellis metrics wouldrequire at least a third size; and because at least one trellis metricof the trellis metrics within the total plurality of trellis metrics isincluded within each of the first plurality of trellis metrics and thesecond first plurality of trellis metrics, the first size of the firstmemory within the apparatus is relatively less than a combined size ofthe second size of the second memory and the third size of the thirdmemory.
 6. The apparatus of claim 1, wherein: the first modulation andthe second modulation each include a same number of constellationpoints; constellation points within the first modulation are symbolmapped according to a first symbol mapping; and constellation pointswithin the second modulation are symbol mapped according to a secondsymbol mapping.
 7. The apparatus of claim 1, wherein: the firstmodulation includes a first plurality of constellation points; thesecond modulation includes a second plurality of constellation points;constellation points within the first modulation are symbol mappedaccording to a first symbol mapping; and constellation points within thesecond modulation are symbol mapped according to a second symbolmapping.
 8. The apparatus of claim 1, wherein: the first modulationincludes a first plurality of constellation points; the secondmodulation includes a second plurality of constellation points; and thesecond plurality of constellation points is a subset of the firstplurality of constellation points.
 9. The apparatus of claim 1, furthercomprising: a rate control sequencer that provides a rate controlsequence to the metric generator and to the decoder, wherein the ratecontrol sequence includes a first rate control and a second ratecontrol; and wherein: for the first symbol, the first rate controlindicates the first modulation and which trellis metrics of the totalplurality of trellis metrics compose the first plurality of trellismetrics to the metric generator and to the decoder; and for the secondsymbol, the second rate control indicates the second modulation andwhich trellis metrics of the total plurality of trellis metrics composethe second plurality of trellis metrics to the metric generator and tothe decoder.
 10. The apparatus of claim 1, further comprising: a ratecontrol sequencer that is operable to provide a rate control sequence tothe metric generator and to the decoder, wherein the rate controlsequence includes a first rate control and a second rate control; andwherein: the first symbol has been encoded using a first code rate; thesecond symbol has been encoded using a second code rate; the first ratecontrol indicates the first code rate of the first symbol to the metricgenerator and to the decoder; and the second rate control indicates thesecond code rate of the second symbol to the metric generator and to thedecoder.
 11. The apparatus of claim 1, wherein: at least one trellismetric of the first plurality of trellis metrics is set to apredetermined maximum value or a predetermined minimum value when onebit within the first plurality of bits is estimated to be either a valueof 0 or
 1. 12. An apparatus, comprising: an input that is operable toreceive a signal from a communication channel, wherein: the signalincludes a first symbol, that includes a first plurality of bits, thathas been symbol mapped to a first modulation, wherein the first symbolhas been encoded using a first code rate; and the signal includes asecond symbol, that includes a second plurality of bits, that has beensymbol mapped to a second modulation, wherein the second symbol has beenencoded using a second code rate; and a decoder that is operable to:employ the first plurality of trellis metrics during decoding processingto make a first best estimate of the first plurality of bits within thefirst symbol, wherein the first plurality of trellis metrics is a firstsubset of a total plurality of trellis metrics that corresponds to aplurality of possible branch transitions within a trellis; and employthe second plurality of trellis metrics during decoding processing tomake a second best estimate of the second plurality of bits within thesecond symbol, wherein the second plurality of trellis metrics is asecond subset of the total plurality of trellis metrics.
 13. Theapparatus of claim 12, further comprising: a metric generator that isoperable to: for the first symbol, calculate a first plurality ofmetrics that is indexed by a first symbol mapping of constellationpoints within the first modulation; for the second symbol, calculate asecond plurality of metrics that is indexed by a second symbol mappingof constellation points within the second modulation; transform thefirst plurality of metrics to the first plurality of trellis metrics;and transform the second plurality of metrics to the second plurality oftrellis metrics.
 14. The apparatus of claim 12, further comprising: arate control sequencer that provides a rate control sequence to themetric generator and to the decoder, wherein the rate control sequenceincludes a first rate control and a second rate control; and wherein:for the first symbol, the first rate control indicates the firstmodulation, which trellis metrics of the total plurality of trellismetrics compose the first plurality of trellis metrics, and the firstcode rate to the metric generator and to the decoder; and for the secondsymbol, the second rate control indicates the second modulation, whichtrellis metrics of the total plurality of trellis metrics compose thesecond plurality of trellis metrics, and the second code rate to themetric generator and to the decoder.
 15. The apparatus of claim 12,wherein: the second plurality of trellis metrics is also a subset of thefirst plurality of trellis metrics.
 16. The apparatus of claim 12,further comprising: a first memory, having a first size, that isoperable to store the total plurality of trellis metrics; and wherein: asecond memory being operable to store the first plurality of trellismetrics would require at least a second size; a third memory beingoperable to store the second plurality of trellis metrics would requireat least a third size; and because at least one trellis metric of thetrellis metrics within the total plurality of trellis metrics isincluded within each of the first plurality of trellis metrics and thesecond first plurality of trellis metrics, the first size of the firstmemory within the apparatus is relatively less than a combined size ofthe second size of the second memory and the third size of the thirdmemory.
 17. The apparatus of claim 12, wherein: the first modulation andthe second modulation each include a same number of constellationpoints; constellation points within the first modulation are symbolmapped according to a first symbol mapping; and constellation pointswithin the second modulation are symbol mapped according to a secondsymbol mapping.
 18. The apparatus of claim 12, wherein: the firstmodulation includes a first plurality of constellation points; thesecond modulation includes a second plurality of constellation points;constellation points within the first modulation are symbol mappedaccording to a first symbol mapping; and constellation points within thesecond modulation are symbol mapped according to a second symbolmapping.
 19. The apparatus of claim 12, wherein: the first modulationincludes a first plurality of constellation points; the secondmodulation includes a second plurality of constellation points; and thesecond plurality of constellation points is a subset of the firstplurality of constellation points.
 20. A method, comprising: receiving asignal from a communication channel, wherein: the signal includes afirst symbol, that includes a first plurality of bits, that has beensymbol mapped to a first modulation, wherein the first symbol has beenencoded using a first code rate; and the signal includes a secondsymbol, that includes a second plurality of bits, that has been symbolmapped to a second modulation, wherein the second symbol has beenencoded using a second code rate; and employing the first plurality oftrellis metrics during decoding processing to make a first best estimateof the first plurality of bits within the first symbol, wherein thefirst plurality of trellis metrics is a first subset of a totalplurality of trellis metrics that corresponds to a plurality of possiblebranch transitions within a trellis; and employing the second pluralityof trellis metrics during decoding processing to make a second bestestimate of the second plurality of bits within the second symbol,wherein the second plurality of trellis metrics is a second subset ofthe total plurality of trellis metrics.
 21. The method of claim 20,further comprising: for the first symbol, calculating a first pluralityof metrics that is indexed by a first symbol mapping of constellationpoints within the first modulation; for the second symbol, calculating asecond plurality of metrics that is indexed by a second symbol mappingof constellation points within the second modulation; transforming thefirst plurality of metrics to the first plurality of trellis metrics;and transforming the second plurality of metrics to the second pluralityof trellis metrics.
 22. The method of claim 20, wherein: the firstmodulation and the second modulation each include a same number ofconstellation points; constellation points within the first modulationare symbol mapped according to a first symbol mapping; and constellationpoints within the second modulation are symbol mapped according to asecond symbol mapping.
 23. The method of claim 20, wherein: the firstmodulation includes a first plurality of constellation points; thesecond modulation includes a second plurality of constellation points;constellation points within the first modulation are symbol mappedaccording to a first symbol mapping; and constellation points within thesecond modulation are symbol mapped according to a second symbolmapping.
 24. The method of claim 20, wherein: the first modulationincludes a first plurality of constellation points; the secondmodulation includes a second plurality of constellation points; and thesecond plurality of constellation points is a subset of the firstplurality of constellation points.